config.xml 6.67 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<?xml version='1.1' encoding='UTF-8'?>
<project>
  <actions/>
  <description>Hi365 iOS IPA Packager</description>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <inheritanceStrategy class="org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy"/>
      <permission>com.cloudbees.plugins.credentials.CredentialsProvider.View:longmengua</permission>
      <permission>hudson.model.Item.Build:longmengua</permission>
      <permission>hudson.model.Item.Cancel:longmengua</permission>
      <permission>hudson.model.Item.Configure:longmengua</permission>
      <permission>hudson.model.Item.Discover:longmengua</permission>
      <permission>hudson.model.Item.Gitflow:longmengua</permission>
      <permission>hudson.model.Item.Read:longmengua</permission>
      <permission>hudson.model.Item.Workspace:longmengua</permission>
    </hudson.security.AuthorizationMatrixProperty>
18 19 20 21 22 23 24 25 26 27 28 29 30
    <com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty plugin="gitlab-plugin@1.5.13">
      <gitLabConnection>ylhealth</gitLabConnection>
    </com.dabsquared.gitlabjenkins.connection.GitLabConnectionProperty>
    <hudson.model.ParametersDefinitionProperty>
      <parameterDefinitions>
        <hudson.model.StringParameterDefinition>
          <name>Version_Number</name>
          <description></description>
          <defaultValue>0.0.0</defaultValue>
          <trim>false</trim>
        </hudson.model.StringParameterDefinition>
      </parameterDefinitions>
    </hudson.model.ParametersDefinitionProperty>
31 32 33 34 35 36 37 38
    <jenkins.model.BuildDiscarderProperty>
      <strategy class="hudson.tasks.LogRotator">
        <daysToKeep>1</daysToKeep>
        <numToKeep>5</numToKeep>
        <artifactDaysToKeep>-1</artifactDaysToKeep>
        <artifactNumToKeep>-1</artifactNumToKeep>
      </strategy>
    </jenkins.model.BuildDiscarderProperty>
39
  </properties>
40
  <scm class="hudson.plugins.git.GitSCM" plugin="git@4.0.0">
41 42 43 44 45 46 47 48 49
    <configVersion>2</configVersion>
    <userRemoteConfigs>
      <hudson.plugins.git.UserRemoteConfig>
        <url>https://cm.ylhealth.org/gitlab/YongYue/hi365-app.git/</url>
        <credentialsId>3485e854-8389-40e8-8c86-b94e94e91904</credentialsId>
      </hudson.plugins.git.UserRemoteConfig>
    </userRemoteConfigs>
    <branches>
      <hudson.plugins.git.BranchSpec>
50
        <name>develop</name>
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
      </hudson.plugins.git.BranchSpec>
    </branches>
    <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
    <submoduleCfg class="list"/>
    <extensions/>
  </scm>
  <assignedNode>Mac_Node1</assignedNode>
  <canRoam>false</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers/>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.Shell>
66
      <command># Choose build dart by environment
67 68
default_doc=&quot;main_sit.dart&quot;
export_method=&quot;ad-hoc&quot;
69
version_number=$Version_Number
70

71 72 73
# Change xcode to 11 which suports Apple Sign In
sudo xcode-select -switch /Applications/Xcode11.app

74 75 76
# Set the variable
project_path=$(pwd)

77
flutter build ios --release --no-codesign -t lib/${default_doc}
78 79 80 81 82 83 84 85 86 87 88 89 90 91

cd $project_path/ios

now=$(date +&quot;%Y_%m_%d_%H:%M&quot;)

current_date=$(date +&quot;%Y%m%d&quot;)

app_version=$(grep &apos;version:&apos; ${project_path}/pubspec.yaml | cut -d &apos; &apos; -f2)

git_short_hash=$(git rev-parse --short HEAD)

scheme=&quot;Runner&quot;

# package configuration for fastlane
92
configuration=&quot;SIT&quot;
93 94 95 96 97 98 99 100 101 102 103 104 105

# iOS project path
workspace_path=&quot;${project_path}/ios/Runner.xcodeproj&quot;

# ipa export folder
rm -rf &quot;${project_path}/ipa&quot;
mkdir -p &quot;${project_path}/ipa&quot;
output_path=&quot;${project_path}/ipa&quot;

# project archive path
archive_path=&quot;$output_path/hi365_${export_method}_${now}.xcarchive&quot;

# ipa name
106
ipa_name=&quot;Hi365_SIT_${current_date}_${version_number}_${git_short_hash}.ipa&quot;
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

# ipa export path
ipa_path=&quot;$output_path/${ipa_name}&quot;

commit_msg=&quot;$1&quot;

# show env settings
echo &quot;===workspace path: ${workspace_path}===&quot;
echo &quot;===archive path: ${archive_path}===&quot;
echo &quot;===ipa path: ${ipa_path}===&quot;
echo &quot;===export method: ${export_method}===&quot;
echo &quot;===commit msg: $1===&quot;

# Clean build and deploy
fastlane gym --scheme ${scheme} --clean --configuration ${configuration} --archive_path ${archive_path} --export_method ${export_method} --output_directory ${output_path} --output_name ${ipa_name} 
echo &quot;Deploy to IPA repository&quot;
123
scp -i ~/jenkins/jenkins ${ipa_path} appuploader@10.57.117.135:~/app/Hi365/${ipa_name}</command>
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
    </hudson.tasks.Shell>
  </builders>
  <publishers>
    <hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.35.2">
      <configs>
        <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
          <configs>
            <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
              <properties>NotifyMessage=Deploy Hi365 IOS  done in SIT.</properties>
              <textParamValueOnNewLine>false</textParamValueOnNewLine>
            </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
          </configs>
          <projects>Notify_Group</projects>
          <condition>SUCCESS</condition>
          <triggerWithNoParameters>false</triggerWithNoParameters>
          <triggerFromChildProjects>false</triggerFromChildProjects>
        </hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
        <hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
          <configs>
            <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
144
              <properties>NotifyMessage=Deploy Hi365 IOS  Failure in SIT fail. Please check it.</properties>
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
              <textParamValueOnNewLine>false</textParamValueOnNewLine>
            </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
          </configs>
          <projects>Notify_Group</projects>
          <condition>UNSTABLE_OR_WORSE</condition>
          <triggerWithNoParameters>false</triggerWithNoParameters>
          <triggerFromChildProjects>false</triggerFromChildProjects>
        </hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
      </configs>
    </hudson.plugins.parameterizedtrigger.BuildTrigger>
  </publishers>
  <buildWrappers>
    <hudson.plugins.ws__cleanup.PreBuildCleanup plugin="ws-cleanup@0.37">
      <deleteDirs>false</deleteDirs>
      <cleanupParameter></cleanupParameter>
      <externalDelete></externalDelete>
      <disableDeferredWipeout>false</disableDeferredWipeout>
    </hudson.plugins.ws__cleanup.PreBuildCleanup>
  </buildWrappers>
</project>