-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
127 lines (108 loc) · 4.19 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
variables:
- group: mentallys_android_group
trigger:
- master
pool:
vmImage: ubuntu-latest
steps:
- script: 'yes | /usr/local/lib/android/sdk/tools/bin/sdkmanager --licenses'
displayName: 'Accept Android licenses'
- task: android-manifest-version@1
displayName: 'Set version in Android Manifest'
inputs:
sourcePath: 'app/src/main/AndroidManifest.xml'
versionCodeOption: 'timestamp'
versionName: '$(versionName)'
printFile: true
- task: Gradle@2
displayName: 'Run UT and IT and generate CC report'
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
publishJUnitResults: true
testResultsFiles: '**/TEST-DEV.xml'
tasks: 'koverMergedXmlReport'
- task: Gradle@2
displayName: 'Assemble Dev'
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
tasks: 'assembleDevRelease'
- task: Gradle@2
displayName: 'Assemble Qa'
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
tasks: 'assembleQaRelease'
- task: Gradle@2
displayName: 'Assemble Prod'
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
tasks: 'assembleProdRelease'
- task: Gradle@2
displayName: 'Bundle Prod'
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
tasks: ':app:bundleProdRelease'
- task: DownloadSecureFile@1
name: AndroidKeyStore
inputs:
secureFile: 'AndroidKeyStore.keystore'
- task: AndroidSigning@3
displayName: 'Signing apk'
inputs:
apkFiles: '**/*.apk'
apksignerKeystoreFile: 'AndroidKeyStore.keystore'
apksignerKeystorePassword: '$(apk-keystore-password)'
apksignerKeystoreAlias: '$(keystore-alias)'
apksignerKeyPassword: '$(apk-key-password)'
zipalign: false
- task: CmdLine@2
displayName: 'Signing and aligning AAB file(s) app\build\outputs\bundle\prodRelease\app-prod-release.aab'
inputs:
script: 'jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore $(AndroidKeyStore.secureFilePath) -storepass $(apk-keystore-password) -keypass $(apk-key-password) $(system.defaultworkingdirectory)/app/build/outputs/bundle/prodRelease/app-prod-release.aab $(keystore-alias)'
- task: CopyFiles@2
displayName: 'Move apk'
inputs:
contents: '**/*.apk'
targetFolder: '$(build.artifactStagingDirectory)'
- task: CopyFiles@2
displayName: 'Move bundle'
inputs:
SourceFolder: '$(system.defaultworkingdirectory)/app/build/outputs/bundle/prodRelease/'
Contents: '**'
TargetFolder: '$(build.artifactstagingdirectory)\drop'
# https://docs.microsoft.com/fr-fr/azure/devops/pipelines/tasks/test/publish-test-results?view=azure-devops&tabs=trx%2Cyaml
- task: PublishTestResults@2
displayName: 'Publish unit tests results'
inputs:
testResultsFormat: 'JUnit'
testResultsFiles: '**/TEST-*.xml'
# https://docs.microsoft.com/fr-fr/azure/devops/pipelines/tasks/test/publish-code-coverage-results?view=azure-devops
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage'
inputs:
codeCoverageTool: 'JaCoCo'
summaryFileLocation: '$(system.defaultworkingdirectory)/app/build/reports/kover/mentallys-xml/report.xml'
pathToSources: '$(system.defaultworkingdirectory)/app/src/'
- task: PublishBuildArtifacts@1
#condition: and(succeededOrFailed(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'))
displayName: 'Publish apk artifact'
inputs:
pathToPublish: '$(build.artifactStagingDirectory)/app/build/outputs/'
artifactName: 'apk-files'
artifactType: 'container'
- task: PublishBuildArtifacts@1
#condition: and(succeededOrFailed(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'))
displayName: 'Publish bundle artifact'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\drop'
ArtifactName: 'drop'
publishLocation: 'Container'