Skip to content

Commit

Permalink
Merge branch 'azure-pipelines' of https://github.com/ministero-salute…
Browse files Browse the repository at this point in the history
…/it-dgc-verificaC19-android into azure-pipelines
  • Loading branch information
mario committed Jul 27, 2021
2 parents 5722cab + f7cedaf commit 7063774
Showing 1 changed file with 201 additions and 115 deletions.
316 changes: 201 additions & 115 deletions azure-pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
name: dgca-verifier-app-android
name: $(Build.BuildID) - dgca-verifier-app-android

trigger:
branches:
include:
- develop
- feature/*
- releases/*
- azure-pipelines


pr:
branches:
include:
- develop
- releases/*


resources:
repositories:
- repository: dgca-app-core-android
Expand All @@ -24,140 +28,222 @@ pool:
vmImage: 'ubuntu-latest'

variables:
publishToAppCenter: $[eq(variables['Build.SourceBranch'], 'refs/heads/develop')]
publishToStore: $[contains(variables['Build.SourceBranch'], 'refs/heads/releases')]
versionCounter: $[counter(variables['Build.SourceBranch'], 100)]

stages:
- stage: Build
jobs:
- job: BuildApk
- job: InitPipeline

steps:
- checkout: self
clean: true
- checkout: dgca-app-core-android

- task: Bash@3
displayName: check pipeline variable value
displayName: set init value
name: initPipeline
inputs:
targetType: 'inline'
script: |
echo 'Check pipeline var'
echo 'publishToAppCenter: $(publishToAppCenter)'
echo 'publishToStore $(publishToStore)'
echo $(versionCounter)
failOnStderr: true

- task: UpdateAndroidVersionGradle@1
inputs:
buildGradlePath: 'it-dgc-verificaC19-android/app/build.gradle'
versionCode: '$(versionCounter)'
#versionName: '$(versionName)'
echo "Check trigger pipeline var"
echo $(versionCounter)
echo "commit message: $(Build.SourceVersionMessage)"
echo "##vso[task.setvariable variable=message;isOutput=true;]$(Build.SourceVersionMessage)"
GIT_MESSAGE=$(Build.SourceVersionMessage)
if [[ ! $GIT_MESSAGE == *"#build"* ]]; then
echo "Not a build commit. Stopping the execution of the build job."
fi
if [[ $GIT_MESSAGE == *"#build-release"* ]]; then
echo "set variabili build e release a true"
echo "##vso[task.setvariable variable=build;isOutput=true;]true"
echo "##vso[task.setvariable variable=release;isOutput=true;]true"
fi
if [[ $GIT_MESSAGE == *"#build-debug"* ]]; then
echo "set variabili build e debug a true"
echo "##vso[task.setvariable variable=build;isOutput=true;]true"
echo "##vso[task.setvariable variable=debug;isOutput=true;]true"
fi
if [[ $GIT_MESSAGE == *"#appcenter"* ]]; then
echo "set variabili appcenter a true"
echo "##vso[task.setvariable variable=appcenter;isOutput=true;]true"
fi
if [[ $GIT_MESSAGE == *"#store"* ]]; then
echo "set variabili store a true"
echo "##vso[task.setvariable variable=store;isOutput=true;]true"
fi
condition: ne(variables['Build.Reason'], 'Manual')

- task: SonarQubePrepare@4
inputs:
SonarQube: 'SonarQube Azure 8.9'
scannerMode: 'CLI'
configMode: 'manual'
cliProjectKey: '$(System.TeamProject)_it-dgc-verificaC19-android'
cliProjectName: '$(System.TeamProject)_it-dgc-verificaC19-android'
cliProjectVersion: '$(Build.SourceBranchName)_$(Build.SourceVersion)'
cliSources: '.'
extraProperties: |
sonar.java.binaries=.
sonar.exclusions=**/CCReport*/**
continueOnError: true

- task: SonarQubeAnalyze@4
continueOnError: true
condition: succeeded()

- task: SonarQubePublish@4
inputs:
pollingTimeoutSec: '300'
continueOnError: true
condition: succeeded()
- task: Gradle@2
inputs:
gradleWrapperFile: 'it-dgc-verificaC19-android/gradlew'
workingDirectory: 'it-dgc-verificaC19-android'
tasks: 'assembleRelease'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
gradleOptions: '-Xmx3072m'
sonarQubeRunAnalysis: false
spotBugsAnalysis: false

- task: CopyFiles@2
inputs:
contents: '**/*.apk'
targetFolder: '$(build.artifactStagingDirectory)'

- task: AndroidSigning@3
inputs:
apkFiles: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/apk/release/app-release-unsigned.apk'
apksignerKeystoreFile: 'android-c19-key.jks'
apksignerKeystorePassword: '$(keystorepassword)'
apksignerKeystoreAlias: '$(keystorealias)'
apksignerKeyPassword: '$(keystorepassword)'
zipalign: false

- task: PublishPipelineArtifact@1
- task: Bash@3
displayName: set PR value
inputs:
targetPath: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/apk/release/app-release-unsigned.apk'
artifact: 'apk'
publishLocation: 'pipeline'
targetType: 'inline'
script: |
echo 'Check trigger pipeline var'
echo $(versionCounter)
echo 'commit message: $(Build.SourceVersionMessage)'
echo '##vso[task.setvariable variable=message;isOutput=true;]$(Build.SourceVersionMessage)'
GIT_MESSAGE=$(Build.SourceVersionMessage)
echo '##vso[task.setvariable variable=build]true'
echo '##vso[task.setvariable variable=debug]true'
if [[ $GIT_MESSAGE == *"#build-release"* ]]; then
echo '##vso[task.setvariable variable=build;isOutput=true;]true'
echo '##vso[task.setvariable variable=release;isOutput=true;]true'
fi
if [[ $GIT_MESSAGE == *"#appcenter"* ]]; then
echo '##vso[task.setvariable variable=appcenter;isOutput=true;]true'
fi
if [[ $GIT_MESSAGE == *"#store"* ]]; then
echo '##vso[task.setvariable variable=store;isOutput=true;]true'
fi
failOnStderr: true
condition: eq(variables['Build.Reason'], 'PullRequest')
# - task: ExtractVersionFromTag@1
# inputs:
# projectFolderPath: '$(Build.SourcesDirectory)'

- bash: |
echo 'message $(initPipeline.message)'
echo 'build $(initPipeline.build)'
echo 'debug $(initPipeline.debug)'
echo 'release $(initPipeline.release)'
echo 'appcenter $(initPipeline.appcenter)'
echo 'store $(initPipeline.store)'
# echo '$(NUMBER_OF_COMMITS)'
# echo '$(MAJOR).$(MINOR).$(PATCH)-dev'

# verificare eventuali condizioni sui rami per eseguire questo step (ad esempio non sulla feature, ma solo su develop e release?)
- task: Gradle@2
inputs:
gradleWrapperFile: 'it-dgc-verificaC19-android/gradlew'
workingDirectory: 'it-dgc-verificaC19-android'
tasks: ':app:bundleRelease'
publishJUnitResults: false
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
gradleOptions: '-Xmx3072m'
sonarQubeRunAnalysis: false
spotBugsAnalysis: false

- task: CopyFiles@2
inputs:
contents: '**/*.aab'
targetFolder: '$(build.artifactStagingDirectory)'
- job: BuildApk
dependsOn: InitPipeline
condition: and(succeeded(), eq(dependencies.InitPipeline.outputs['initPipeline.build'], true))
variables:
build: $[ dependencies.InitPipeline.outputs['initPipeline.build'] ]
debug: $[ dependencies.InitPipeline.outputs['initPipeline.debug'] ]
release: $[ dependencies.InitPipeline.outputs['initPipeline.release'] ]
appcenter: $[ dependencies.InitPipeline.outputs['initPipeline.appcenter'] ]
store: $[ dependencies.InitPipeline.outputs['initPipeline.store'] ]

- task: AndroidSigning@2
inputs:
apkFiles: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/bundle/release/app-release.aab'
jarsignerKeystoreFile: 'android-c19-key.jks'
jarsignerKeystorePassword: '$(keystorepassword)'
jarsignerKeystoreAlias: '$(keystorealias)'
jarsignerKeyPassword: '$(keystorepassword)'
jarsignerArguments: '-sigalg SHA256withRSA -digestalg SHA-256'
steps:
- checkout: self
clean: true
- checkout: dgca-app-core-android

- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/bundle/release/app-release.aab'
artifact: 'bundle'
publishLocation: 'pipeline'
- bash: |
echo 'message $(message)'
echo 'build $(build)'
echo 'debug $(debug)'
echo 'release $(release)'
echo 'appcenter $(appcenter)'
echo 'store $(store)'
# echo '$(NUMBER_OF_COMMITS)'
# echo '$(MAJOR).$(MINOR).$(PATCH)-dev'


# - task: UpdateAndroidVersionGradle@1
# inputs:
# buildGradlePath: 'it-dgc-verificaC19-android/app/build.gradle'
# versionCode: '$(NUMBER_OF_COMMITS)'
# versionName: '$(MAJOR).$(MINOR).$(PATCH)-dev'
# ${{ if contains(variables['message'],'#build-release') }}:
# versionName: '$(MAJOR).$(MINOR).$(PATCH)'
# condition: and(succeeded(), contains(variables['message'],'#build-debug'))

# - task: SonarQubePrepare@4
# inputs:
# SonarQube: 'SonarQube Azure 8.9'
# scannerMode: 'CLI'
# configMode: 'manual'
# cliProjectKey: '$(System.TeamProject)_it-dgc-verificaC19-android'
# cliProjectName: '$(System.TeamProject)_it-dgc-verificaC19-android'
# cliProjectVersion: '$(Build.SourceBranchName)_$(Build.SourceVersion)'
# cliSources: '.'
# extraProperties: |
# sonar.java.binaries=.
# sonar.exclusions=**/CCReport*/**
# continueOnError: true

# - task: SonarQubeAnalyze@4
# continueOnError: true
# condition: succeeded()

# - task: SonarQubePublish@4
# inputs:
# pollingTimeoutSec: '300'
# continueOnError: true
# condition: succeeded()
# - task: Gradle@2
# inputs:
# gradleWrapperFile: 'it-dgc-verificaC19-android/gradlew'
# workingDirectory: 'it-dgc-verificaC19-android'
# tasks: 'assembleRelease'
# publishJUnitResults: true
# testResultsFiles: '**/TEST-*.xml'
# javaHomeOption: 'JDKVersion'
# jdkVersionOption: '1.8'
# gradleOptions: '-Xmx3072m'
# sonarQubeRunAnalysis: false
# spotBugsAnalysis: false

# - task: CopyFiles@2
# inputs:
# contents: '**/*.apk'
# targetFolder: '$(build.artifactStagingDirectory)'

# - task: AndroidSigning@3
# inputs:
# apkFiles: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/apk/release/app-release-unsigned.apk'
# apksignerKeystoreFile: 'android-c19-key.jks'
# apksignerKeystorePassword: '$(keystorepassword)'
# apksignerKeystoreAlias: '$(keystorealias)'
# apksignerKeyPassword: '$(keystorepassword)'
# zipalign: false

# - task: PublishPipelineArtifact@1
# inputs:
# targetPath: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/apk/release/app-release-unsigned.apk'
# artifact: 'apk'
# publishLocation: 'pipeline'

# # verificare eventuali condizioni sui rami per eseguire questo step (ad esempio non sulla feature, ma solo su develop e release?)
# - task: Gradle@2
# inputs:
# gradleWrapperFile: 'it-dgc-verificaC19-android/gradlew'
# workingDirectory: 'it-dgc-verificaC19-android'
# tasks: ':app:bundleRelease'
# publishJUnitResults: false
# javaHomeOption: 'JDKVersion'
# jdkVersionOption: '1.8'
# gradleOptions: '-Xmx3072m'
# sonarQubeRunAnalysis: false
# spotBugsAnalysis: false

# - task: CopyFiles@2
# inputs:
# contents: '**/*.aab'
# targetFolder: '$(build.artifactStagingDirectory)'

# - task: AndroidSigning@2
# inputs:
# apkFiles: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/bundle/release/app-release.aab'
# jarsignerKeystoreFile: 'android-c19-key.jks'
# jarsignerKeystorePassword: '$(keystorepassword)'
# jarsignerKeystoreAlias: '$(keystorealias)'
# jarsignerKeyPassword: '$(keystorepassword)'
# jarsignerArguments: '-sigalg SHA256withRSA -digestalg SHA-256'

- task: PublishPipelineArtifact@1
inputs:
targetPath: 'it-dgc-verificaC19-android/metadata/release-notes.xml'
artifact: 'release-notes'
publishLocation: 'pipeline'

- task: WhiteSource@21
inputs:
cwd: '$(System.DefaultWorkingDirectory)'
projectName: 'ministero-salute.it-dgc-verificaC19-android'
# - task: PublishPipelineArtifact@1
# inputs:
# targetPath: '$(build.artifactStagingDirectory)/it-dgc-verificaC19-android/app/build/outputs/bundle/release/app-release.aab'
# artifact: 'bundle'
# publishLocation: 'pipeline'

- task: dependency-check-build-task@6
inputs:
projectName: 'ministero-salute.it-dgc-verificaC19-android'
scanPath: './'
format: 'HTML'
# - task: PublishPipelineArtifact@1
# inputs:
# targetPath: 'it-dgc-verificaC19-android/metadata/release-notes.xml'
# artifact: 'release-notes'
# publishLocation: 'pipeline'


0 comments on commit 7063774

Please sign in to comment.