feat: change docker image building workflow into matrix #3172
+43
−103
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Le workflow qui build les images docker officielles pour Jeedom est en erreur depuis pas loin d'un an. Aucune mise à jour d'image officielle sur le docker hub. J'ai vu et reproduis l'erreur suivante:
ERROR: (*service).Write failed: rpc error: code = Unknown desc = write /tmp/.buildx-cache/ingest/7959d578df551b1881fed6c332ba59b129715148492d5afa7eeaa53454ebad95/data: no space left on deviceProbablement c'était la cause de ce step pour supprimer toute sorte de fichiers temporaires sur le runner github mais le step bloque le build avec une autre erreur
Le workflow actuel tente de générer plusieurs images dans un unique job constitué de nombreux steps. Je propose une autre approche, qui consiste à utiliser une matrice pour générer plusieurs images en parallèle dans des runners github distincts.
Le job génère 4 images en parallèle (produit cartésien):
Le moment venu, on pourra facilement ajouter debien:trixie dans la liste et générer 2 images supplémentaires (lorsque le script d'install et le Dockerfile seront compatibles) il suffit d'ajouter trixie dans la matrice.
J'ai aussi déplacé le script dans .github/scripts, c'est un script uniquement dédié à la pipeline CI/CD il n'a pas de rapport avec l'installation de Jeedom, même sous Docker (oui c'est moi qui l'avait créé à cet endroit à l'époque...)
install/OS_specific/Docker/init_workflow.sh → .github/scripts/init_workflow.sh
lien vers le dernier run du workflow pour preuve de test:
https://github.com/pifou25/jeedom-core/actions/runs/20413543962
J'ai fait la PR sur master (default branch) car c'est celle-ci qui génère l'image officielle, sinon ça serait une image beta ou alpha.
On peut aussi copier / cherry-pick ce commit sur alpha si besoin ? pour générer une future image 4.6-trixie :)
Suggested changelog entry
Restauration du pipeline pour générer l'image Docker officielle
Types of changes
PR checklist