-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathazure-pipelines.yml
137 lines (115 loc) · 4.68 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
trigger:
- main
pr:
- main
pool:
vmImage: "macos-13"
variables:
- group: AppCenter
- group: Protected
name: 1.0.$(Date:yyyyMMdd).$(Rev:r)
stages:
- stage: Build
dependsOn: []
displayName: Build Oshi
jobs:
- job: Publish
displayName: Build for release
steps:
- checkout: self
submodules: true | recursive
persistCredentials: "true"
- task: DownloadSecureFile@1
name: keyprop
displayName: Download key properties file
inputs:
secureFile: "keystore.properties"
- task: DownloadSecureFile@1
name: key
displayName: Download the signing key
inputs:
secureFile: "upload-keystore.jks"
- task: Bash@3
displayName: Copy the config files
inputs:
targetType: "inline"
script: |
cp $(keyprop.secureFilePath) $(Build.SourcesDirectory)/android/keystore.properties
cp $(key.secureFilePath) $(Build.SourcesDirectory)/android/app/upload-keystore.jks
- task: FlutterInstall@0
displayName: "Install Flutter SDK"
inputs:
channel: 'stable'
version: 'custom'
customVersion: "3.22.3"
- bash: |
sed -i '' "s/9.9.9+9/1.0.$(date '+%Y%m%d')/g" ./pubspec.yaml
sed -i '' "s/9.9.9.9/$(Build.BuildNumber)/g" ./lib/share/share.dart
sed -i '' "s/AZ_APPCENTER_TELEMETRY_TOKEN/$(APPCENTER_TELEMETRY_TOKEN)/g" ./lib/share/appcenter.dart
sed -i '' "s/AZ_SZKOLNY_APP_TOKEN/$(SZKOLNY_APP_TOKEN)/g" ./lib/share/appcenter.dart
displayName: Add version and token data to Oshi
- bash: |
$(FlutterToolPath)/flutter pub get
displayName: Sync dependencies
- bash: |
flutter build ios --release --no-codesign
cd ./build/ios/iphoneos && mkdir Payload && mv Runner.app Payload/Runner.app && zip -r Oshi.ipa Payload
mv Oshi.ipa '$(Build.ArtifactStagingDirectory)/Oshi.ipa'
displayName: Build Oshi for ios-arm64v8-release
- bash: |
$(FlutterToolPath)/flutter build apk --release
mv 'build/app/outputs/flutter-apk/app-release.apk' '$(Build.ArtifactStagingDirectory)/Oshi.apk'
displayName: Build Oshi for android-release
- publish: "$(Build.ArtifactStagingDirectory)"
displayName: Publish Oshi
artifact: pack
- stage: Stage
dependsOn: Build
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
jobs:
- job: Artifacts
variables:
packageVersion: $[ stageDependencies.Build.Publish.outputs['ParseAppxManifest.PackageVersion'] ]
steps:
- checkout: self
submodules: true | recursive
persistCredentials: "true"
- download: current
displayName: Download published artifacts
artifact: pack
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: "$(Build.ArtifactStagingDirectory)/Oshi.apk"
ArtifactName: "Oshi-Android"
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: "$(Build.ArtifactStagingDirectory)/Oshi.ipa"
ArtifactName: "Oshi-iOS"
- stage: Distribute
dependsOn: Build
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
jobs:
- job: Artifacts
variables:
packageVersion: $[ stageDependencies.Build.Publish.outputs['ParseAppxManifest.PackageVersion'] ]
steps:
- checkout: self
submodules: true | recursive
persistCredentials: "true"
- download: current
displayName: Download published artifacts
artifact: pack
- task: GitHubRelease@1
inputs:
gitHubConnection: GitHub
repositoryName: "$(Build.Repository.Name)"
action: "create"
target: "$(Build.SourceVersion)"
tagSource: "userSpecifiedTag"
tag: "$(Build.BuildNumber)"
assets: "$(Pipeline.Workspace)/pack/*"
changeLogCompareToRelease: "lastFullRelease"
changeLogType: "commitBased"
- bash: |
curl -L -X POST -H "Accept: application/vnd.github+json" -H "Authorization: Bearer $(GitHubToken)" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/Ogaku/Toudai/actions/workflows/update.yml/dispatches -d '{"ref":"main","inputs":{}}'
displayName: Trigger a refresh on Toudai