Files
build-push-multiarch/README.md
2025-06-12 18:52:29 +02:00

84 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 lenvironnement **Gitea** de la Petite Maison Orange.
Elle inclut une **intégration native avec Healthchecks.io** pour monitorer chaque étape du processus.
---
## 🔧 Utilisation
```yaml
- 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 limage (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 lauthentification au registre. |
| `registry_password` | ❌ | `${{ secrets.PMO_REGISTRY_PASSWORD }}` | Mot de passe associé à lutilisateur. |
| `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
```yaml
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
- Limage est construite avec `docker buildx` pour chaque tag fourni, et exportée au format OCI (`oci_image/<tag>.tar`).
- Chaque image est poussée avec `podman push` vers le registre Docker.
- Si le paramétrage `check_uuid` est fourni, chaque étape (début, build, push, succès, échec) est reportée au serveur Healthchecks.io configuré.
- Le mode `debug` permet dafficher toutes les étapes internes de façon plus verbeuse, grâce à la lib `bashlib.sh`.
---
## 🩺 Intégration Healthchecks
Laction utilise automatiquement laction [healthchecks-ping](https://gargoton.petite-maison-orange.fr/pmo-actions/healthchecks-ping@main) pour :
- envoyer un `start` en début de build,
- un `log` pour indiquer le début du build, puis la fin du build,
- un `stop` en fin de workflow,
- un `fail` si 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/](https://gargoton.petite-maison-orange.fr/pmo-actions/)