Ajouter README.md

This commit is contained in:
2025-06-12 18:52:29 +02:00
parent 11157b87be
commit e889e21fc1

84
README.md Normal file
View File

@@ -0,0 +1,84 @@
# 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/)