pipeline { agent { label 'master' } options { buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '10')) disableConcurrentBuilds() } environment { // ANDROID_HOME = "/usr/local/android/sdk" // Cambia in base al tuo sistema JAVA_HOME = tool 'JDK 17.0.6 x64' // Nome dello strumento configurato in Jenkins PATH = "${env.JAVA_HOME}/bin:${env.PATH}" } stages { stage('Preparing') { when(expression: { env.GIT_BRANCH == 'master-beta' }) steps { powershell """ # Percorso del file build.gradle $gradleFile = "app\\build.gradle" # Legge il contenuto del file $content = Get-Content $gradleFile -Raw # Modifica appVersionName aggiungendo '-beta' $content = $content -replace "(appVersionName\\s*=\\s*')([^']+)'", "`\$1`\$2-beta'" # Modifica il nome del file di output aggiungendo '-beta' prima dell'estensione .apk $content = $content -replace '(output\\.outputFileName\\s*=\\s*")([^"]+)(\\.apk")', "`\$1`\$2-beta`\$3" # Modifica il percorso di version.txt in version-beta.txt $content = $content -replace '("\\$projectDir/build/outputs/apk/release/version)(\\.txt")', '\$1-beta\$2' # Sovrascrive il file con le modifiche Set-Content $gradleFile -Value $content Write-Host "Versione aggiornata con '-beta' in appVersionName, outputFileName e percorso di version.txt" """ } } stage('Build') { steps { bat "./gradlew assembleRelease" archiveArtifacts artifacts: 'app/build/outputs/apk/release/', onlyIfSuccessful: true } } stage('Publish') { steps { azureUpload allowAnonymousAccess: true, fileShareName: 'storage-ci', filesPath: 'app/build/outputs/apk/release/*', removePrefixPath: 'app/build/outputs/apk/release/', storageCredentialId: '83a86793-c1d6-4776-b20f-1ff652a57fee', storageType: 'filestorage', uploadArtifactsOnlyIfSuccessful: true, verbose: true, virtualPath: 'wms' } } } post { success { script { bat "curl -k https://devservices.studioml.it/ems-api/updateWMSApp" bat "curl -k https://services.studioml.it/ems-api/updateWMSApp" if (env.GIT_BRANCH == "master") { office365ConnectorSend adaptiveCards: true, color: '#008000', message: 'WMS è stato compilato con successo', status: 'SUCCESS', webhookUrl: 'https://prod-89.westeurope.logic.azure.com:443/workflows/260580715a9d4447a54dea861a865536/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=EMqPHohvE5o5IGj_gir_iQaAufR4r8ZJxlFx52jklSE' } } } unstable { script { if (env.GIT_BRANCH == "master") { office365ConnectorSend adaptiveCards: true, color: '#FFDE21', message: 'WMS è INSTABILE', status: 'UNSTABLE', webhookUrl: 'https://prod-89.westeurope.logic.azure.com:443/workflows/260580715a9d4447a54dea861a865536/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=EMqPHohvE5o5IGj_gir_iQaAufR4r8ZJxlFx52jklSE' } } } failure { script { if (env.GIT_BRANCH == "master") { office365ConnectorSend adaptiveCards: true, color: '#FF2C2C', message: 'Errore di compilazione su WMS', status: 'FAILURE', webhookUrl: 'https://prod-89.westeurope.logic.azure.com:443/workflows/260580715a9d4447a54dea861a865536/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=EMqPHohvE5o5IGj_gir_iQaAufR4r8ZJxlFx52jklSE' } } } } }