jenkins: run flutter builds sequential and deployment parallel

This commit is contained in:
2025-10-26 08:43:13 +01:00
parent 845d9150fc
commit 321e79b9a1

102
Jenkinsfile vendored
View File

@@ -13,75 +13,65 @@ pipeline {
sh 'devenv test' sh 'devenv test'
} }
} }
stage('Build and Deploy') { stage('Flutter builds') {
stages { sh 'devenv shell dart run pdfrx:remove_wasm_modules --revert' // Make sure WASM is put in output
sh 'devenv shell flutter build web --release'
sh 'devenv shell dart run pdfrx:remove_wasm_modules' // NOT idempotent!
sh 'devenv shell flutter build apk --release'
sh 'devenv shell dart run pdfrx:remove_wasm_modules --revert' // Reset again, just to be sure
}
stage('Parallel Deploy') {
parallel {
stage('Web') { stage('Web') {
stages { steps {
stage('Build') { sh 'docker build -t harbor.julian-mutter.de/sheetless/sheetless-frontend .'
steps { withDockerRegistry([credentialsId: 'harbor', url: 'https://harbor.julian-mutter.de']) {
sh 'devenv shell flutter build web --release' sh 'docker push harbor.julian-mutter.de/sheetless/sheetless-frontend'
sh 'docker build -t harbor.julian-mutter.de/sheetless/sheetless-frontend .'
}
}
stage('Deploy') {
steps {
withDockerRegistry([credentialsId: 'harbor', url: 'https://harbor.julian-mutter.de']) {
sh 'docker push harbor.julian-mutter.de/sheetless/sheetless-frontend'
}
}
} }
} }
} }
stage('Android') { stage('Android') {
stages { stage('Checkout F-Droid Repo') {
stage('Build') {
steps { steps {
sh 'devenv shell flutter build apk --release' dir("fdroid-repo") {
git branch: 'master', url: "https://gitlab.julian-mutter.de/julian/fdroid-frajul.git", credentialsId: "gitea", poll: "false"
}
} }
} }
stage('Deploy') {
stages {
stage('Checkout F-Droid Repo') {
steps {
dir("fdroid-repo") {
git branch: 'master', url: "https://gitlab.julian-mutter.de/julian/fdroid-frajul.git", credentialsId: "gitea", poll: "false"
}
}
}
stage('Decrypt keys') { stage('Decrypt keys') {
steps { steps {
dir("fdroid-repo") { dir("fdroid-repo") {
sh 'devenv shell ./decrypt.sh' sh 'devenv shell ./decrypt.sh'
}
}
} }
}
}
stage('Copy APK') { stage('Copy APK') {
steps { steps {
sh "cp build/app/outputs/apk/release/app-release.apk fdroid-repo/fdroid/repo/sheetless.apk" sh "cp build/app/outputs/apk/release/app-release.apk fdroid-repo/fdroid/repo/sheetless.apk"
} }
}
stage('Update Metadata') {
steps {
dir("fdroid-repo") {
sh 'devenv shell ./update-repo.sh'
} }
}
}
stage('Update Metadata') { stage('Push updates') {
steps { steps {
dir("fdroid-repo") { dir("fdroid-repo") {
sh 'devenv shell ./update-repo.sh' withCredentials([gitUsernamePassword(credentialsId: 'gitea')]) {
} sh '''
} git config --global user.email "jenkins@comumail.de"
} git config --global user.name "Jenkins CI"
./push-updates.sh
stage('Push updates') { '''
steps {
dir("fdroid-repo") {
withCredentials([gitUsernamePassword(credentialsId: 'gitea')]) {
sh '''
git config --global user.email "jenkins@comumail.de"
git config --global user.name "Jenkins CI"
./push-updates.sh
'''
}
}
} }
} }
} }