Bug #94513
Makefile/Jenkins modifier le stage "build image" pour attendre un autre pipeline si nécessaire
0%
Description
Si on a un pipeline qui est en train de construire les images disques, un autre pipeline qui se lancerait au même moment essayera d'utiliser les images en court de construction : ça ne fonctionnera pas.
History
Updated by Robot Gitea 8 months ago
- Status changed from Nouveau to En cours
Yann Weber (yweber) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/publik-functests/pulls/8
- Titre : WIP: Makefile: use flock to lock disk image during build (#94513)
- Modifications : https://git.entrouvert.org/entrouvert/publik-functests/pulls/8/files
Updated by Gael Pasgrimaud (retour le 12 mai) 8 months ago
Je suis tombé sur une autre option:
diff --git a/Jenkinsfile b/Jenkinsfile index 3beecb8..f250248 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,6 +14,11 @@ pipeline { } stages { stage('Build image') { + when { + expression { + return env.BRANCH_NAME == 'main' + } + } parallel { stage('Build image (bookworm)') { agent any
Ca permet de totalement skip les étapes de build quand on est pas dans main. Testé rapidement là https://jenkins.entrouvert.org/job/gitea/job/publik-functests/job/wip%252F94486-Ne-lancer-les-tests-que-sur-main-quand-on-est-dans-un-cron/ On voit les trous.
Et on a déjà options { disableConcurrentBuilds() }
qui empêche d'avoir plus d'un build sur une même branche.
Le seul inconvénient c'est qu'on ne pourra plus tester le build d'image depuis une branche. Mais je me dis que ce n'est pas trop grave. "Tout" est dans devinst. Le peu qu'installe ce projet dans l'image ne devrait pas bouger souvent. Et si ça casse en de rares occasion, ce n'est pas bien grave.
L'avantage est qu'on a pas à gérer de lock dans le Makefile. Vu que c'est du code qui tourne aussi en local, j'aimerai autant qu'on s'en passe.
Opinion ?
Updated by Yann Weber 8 months ago
Gael Pasgrimaud a écrit :
Comme autres inconvénients que je vois, c'est que si l'image n'existe pas/plus :Ca permet de totalement skip les étapes de build quand on est pas dans main. Testé rapidement là https://jenkins.entrouvert.org/job/gitea/job/publik-functests/job/wip%252F94486-Ne-lancer-les-tests-que-sur-main-quand-on-est-dans-un-cron/ On voit les trous.
Le seul inconvénient c'est qu'on ne pourra plus tester le build d'image depuis une branche. Mais je me dis que ce n'est pas trop grave. "Tout" est dans devinst. Le peu qu'installe ce projet dans l'image ne devrait pas bouger souvent. Et si ça casse en de rares occasion, ce n'est pas bien grave.
- il faut relancer le build par la branche main
- des tests qui seraient lancés dans une branche partirons en erreur tant que l'image ne sera pas prête (au lieu d'attendre 900s max sur le flock avant de partir en erreur)
L'avantage est qu'on a pas à gérer de lock dans le Makefile. Vu que c'est du code qui tourne aussi en local, j'aimerai autant qu'on s'en passe.
De mon côté je ne vois pas de soucis au flock en local, sauf qu'a priori ils n'a pas une grande utilité (protéger contre une erreur de manip improbable ?) : je pense qu'on peut modifier la PR pour que seul la target jenkins_build
utilise flock et remettre une target build
qui n'utilise pas de flock.
Updated by Robot Gitea 8 months ago
- Status changed from Solution proposée to Solution validée
Gael Pasgrimaud (gpasgrimaud) a approuvé une pull request sur Gitea concernant cette demande :
Updated by Robot Gitea 8 months ago
- Status changed from Solution validée to Résolu (à déployer)
Yann Weber (yweber) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/publik-functests/pulls/8
- Titre : Makefile: use flock to lock disk image during build (#94513)
- Modifications : https://git.entrouvert.org/entrouvert/publik-functests/pulls/8/files
Updated by Emmanuel Cazenave about 1 month ago
- Status changed from Résolu (à déployer) to Solution déployée