Simplify / harmonize packaging step in Jenkinsfile (#74572) #47

Merged
aberriot merged 1 commits from wip/74572-simplify-jenkinsfile into main 2023-02-20 14:05:38 +01:00
1 changed files with 11 additions and 3 deletions

14
Jenkinsfile vendored
View File

@ -26,10 +26,18 @@ pipeline {
stage('Packaging') {
steps {
script {
if (env.JOB_NAME == 'combo' && env.GIT_BRANCH == 'origin/main') {
sh 'sudo -H -u eobuilder /usr/local/bin/eobuilder -d bullseye combo'
env.SHORT_JOB_NAME=sh(
returnStdout: true,
// given JOB_NAME=gitea/project/PR-46, returns project
// given JOB_NAME=project/main, returns project
script: '''
echo "${JOB_NAME}" | sed "s/gitea\\///" | awk -F/ '{print $1}'
'''
).trim()

Basé sur https://stackoverflow.com/a/59359806/2844093, pour sortir la bonne partie du job name et la passer à EObuilder.

Basé sur https://stackoverflow.com/a/59359806/2844093, pour sortir la bonne partie du job name et la passer à EObuilder.
if (env.GIT_BRANCH == 'main' || env.GIT_BRANCH == 'origin/main') {
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder -d bullseye ${SHORT_JOB_NAME}"
} else if (env.GIT_BRANCH.startsWith('hotfix/')) {
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder -d bullseye --branch ${env.GIT_BRANCH} --hotfix combo"
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder -d bullseye --branch ${env.GIT_BRANCH} --hotfix ${SHORT_JOB_NAME}"

Cette partie là devient indépendante du projet, on peut copier/coller d'un projet à l'autre sans soucis. J'utilise env.BRANCH_NAME au lieu de env.GIT_BRANCH, car normalement cette variable ne contient pas de prefixe type origin/.

Sur une PR, BRANCH_NAME ressemble à gitea/combo/PR-47, mais autrement, ça doit matcher la branche git en train d'être buildée.

Cette partie là devient indépendante du projet, on peut copier/coller d'un projet à l'autre sans soucis. J'utilise `env.BRANCH_NAME` au lieu de `env.GIT_BRANCH`, car normalement cette variable ne contient pas de prefixe type `origin/`. Sur une PR, BRANCH_NAME ressemble à `gitea/combo/PR-47`, mais autrement, ça doit matcher la branche git en train d'être buildée.

On pourrait avoir if (env.BRANCH_NAME == 'main' || .BRANCH_NAME == 'origin/main') {, pour garantie sur l'existant ?

Pour bien tout vérifier, si tu veux faire des tests sur la branche main, tu peux migrer le projet https://git.entrouvert.org/bidon.git/ vers gitea, là-dedans tu pourras commiter directement sur main pour tester.

On pourrait avoir `if (env.BRANCH_NAME == 'main' || .BRANCH_NAME == 'origin/main') {`, pour garantie sur l'existant ? Pour bien tout vérifier, si tu veux faire des tests sur la branche main, tu peux migrer le projet https://git.entrouvert.org/bidon.git/ vers gitea, là-dedans tu pourras commiter directement sur main pour tester.

Ah génial, je vais faire mes tests sur le projet bidon pour m'assurer de la compat sur main (déjà ça plante avec le code de la PR).

Ah génial, je vais faire mes tests sur le projet bidon pour m'assurer de la compat sur main (déjà ça plante avec le code de la PR).

Du coup, BRANCH_NAME n'est simplement pas disponible sur les jobs existants. Donc j'ai rebasculé sur GIT_BRANCH, avec un or pour gérer le préfixe avec origin/, cf 80d7fb2fbb/Jenkinsfile (L22-L25)

(qui passe comme attendu et builde un package, cf https://jenkins.entrouvert.org/job/bidon/1067/console)

Du coup, BRANCH_NAME n'est simplement pas disponible sur les jobs existants. Donc j'ai rebasculé sur GIT_BRANCH, avec un or pour gérer le préfixe avec origin/, cf https://gitea.entrouvert.org/entrouvert/bidon/src/commit/80d7fb2fbbff8540efc94ef031b503102bcb3037/Jenkinsfile#L22-L25 (qui passe comme attendu et builde un package, cf https://jenkins.entrouvert.org/job/bidon/1067/console)
}
}
}