L'action build-pushx-image
Cette action construit une image multi-architecture au format OCI avec docker buildx, puis la pousse avec podman vers un registre distant.
Elle est conçue pour fonctionner sur des runners auto-hébergés, notamment dans l’environnement Gitea de la Petite Maison Orange.
Elle inclut une intégration native avec Healthchecks.io pour monitorer chaque étape du processus.
🔧 Utilisation
- name: Build and push multiarch image
uses: https://gargoton.petite-maison-orange.fr/pmo-actions/build-pushx-image@main
with:
image_name: my_image
image_tags: latest stable
platforms: linux/amd64,linux/arm64
check_uuid: ${{ secrets.HEALTHCHECK_UUID }}
📥 Paramètres
| Nom | Obligatoire | Par défaut | Description |
|---|---|---|---|
image_name |
✅ | – | Nom de l’image (ex. myapp/web). |
image_tags |
✅ | – | Liste (séparée par des espaces) des tags à appliquer. |
platforms |
❌ | linux/amd64 |
Plateformes cibles pour buildx (ex. linux/amd64,linux/arm64). |
registry_server |
❌ | niepce.petite-maison-orange.fr |
Serveur de registre distant. |
registry_user |
❌ | ${{ secrets.PMO_REGISTRY_USER }} |
Utilisateur pour l’authentification au registre. |
registry_password |
❌ | ${{ secrets.PMO_REGISTRY_PASSWORD }} |
Mot de passe associé à l’utilisateur. |
check_server |
❌ | https://haoma.petite-maison-orange.fr |
URL du serveur Healthchecks.io utilisé. |
check_uuid |
❌ | – | UUID du job Healthchecks.io à monitorer. |
debug |
❌ | false |
Active le mode débogage (true ou false). |
▶️ Exemple de workflow
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build and push image
uses: https://gargoton.petite-maison-orange.fr/pmo-actions/build-pushx-image@main
with:
image_name: mycontainer/web
image_tags: latest $(date +%Y%m%d)
platforms: linux/amd64,linux/arm64
registry_user: ${{ secrets.REGISTRY_USER }}
registry_password: ${{ secrets.REGISTRY_PASSWORD }}
check_uuid: ${{ secrets.HEALTHCHECK_UUID }}
⚙️ Comportement
- L’image est construite avec
docker buildxpour chaque tag fourni, et exportée au format OCI (oci_image/<tag>.tar). - Chaque image est poussée avec
podman pushvers le registre Docker. - Si le paramétrage
check_uuidest fourni, chaque étape (début, build, push, succès, échec) est reportée au serveur Healthchecks.io configuré. - Le mode
debugpermet d’afficher toutes les étapes internes de façon plus verbeuse, grâce à la libbashlib.sh.
🩺 Intégration Healthchecks
L’action utilise automatiquement l’action healthchecks-ping pour :
- envoyer un
starten début de build, - un
logpour indiquer le début du build, puis la fin du build, - un
stopen fin de workflow, - un
failsi une étape échoue ou est annulée.
🧡 À propos
Cette action fait partie des actions de la Petite Maison Orange.
Toutes les actions sont disponibles ici :
👉 https://gargoton.petite-maison-orange.fr/pmo-actions/
Description