Skip to content

Instantly share code, notes, and snippets.

@karm435
Created November 27, 2020 03:19
Show Gist options
  • Save karm435/f3a8cca2d531785d333f9659035a93c3 to your computer and use it in GitHub Desktop.
Save karm435/f3a8cca2d531785d333f9659035a93c3 to your computer and use it in GitHub Desktop.
Android build
# Starter pipeline
parameters:
- name: keystoreFileName
displayName: "The keystore file name for signing the apk"
type: string
- name: keystorePassword
displayName: "Password for the keystore"
type: string
- name: keyAlias
displayName: "key alias"
type: string
- name: keyPassword
displayName: "Key password"
type: string
- name: artifactName
displayName: "Name of the artifact"
type: string
- name: environment
displayName: "Ionic Build environment"
type: string
- name: gradleTasks
displayName: "Gradle tasks for build: possible values: assembleRelease(for prod), staging"
type: string
- name: buildType
displayName: "Custom Build type, possible values: staging, release(for prod)"
type: string
- name: googleServiceFilePath
displayName: "Google services file"
type: string
steps:
- template: ionic-build.yml
parameters:
environment: "${{ parameters.environment }}"
- script: npx cap sync android
displayName: 'Sync android'
- task: DownloadSecureFile@1
name: googleServicesFile
displayName: 'google services File'
inputs:
secureFile: '${{ parameters.googleServiceFilePath }}'
- script: |
echo googleServicesFile downloaded to $(googleServicesFile.secureFilePath)
mv $(googleServicesFile.secureFilePath) android/app/google-services.json
displayName: 'Copy google service file'
- task: UpdateAndroidVersionGradle@1
inputs:
buildGradlePath: 'android/app/build.gradle'
versionCode: '$(Build.BuildID)'
versionName: '$(VersionName)'
- task: Gradle@2
inputs:
workingDirectory: $(system.defaultWorkingDirectory)/android
gradleWrapperFile: '$(system.defaultWorkingDirectory)/android/gradlew'
gradleOptions: '-Xmx3072m'
publishJUnitResults: false
tasks: ${{ parameters.gradletasks }}
displayName: 'build android project'
- task: AndroidSigning@3
displayName: 'Sign the apk'
inputs:
apkFiles: '**/app*.apk'
apksign: true
apksignerKeystoreFile: '${{ parameters.keystoreFileName }}'
apksignerKeystorePassword: '${{ parameters.keystorePassword }}'
apksignerKeystoreAlias: '${{ parameters.keyAlias }}'
apksignerKeyPassword: '${{ parameters.keyPassword }}'
apksignerArguments: --out $(Build.SourcesDirectory)/android/app/build/outputs/apk/${{ parameters.buildType }}/TodoApp.release.apk --verbose
zipalign: true
- publish: $(Build.SourcesDirectory)/android/app/build/outputs/apk/${{ parameters.buildType }}
artifact: '${{ parameters.artifactName }}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment