2025-12-26 15:16:57 +01:00
2025-12-26 15:16:57 +01:00
2025-06-12 18:52:29 +02:00

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

- 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

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 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/

Description
No description provided
Readme 30 KiB