No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-30 16:12:36 +02:00
action.yaml Update action workflow to source bashlib.sh from runner temp dir 2026-08-30 16:11:55 +02:00
README.md Remove automatic GitHub Secrets fallback for registry credentials 2026-08-30 11:48:19 +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 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 ❌ (vide) Utilisateur pour l'authentification au registre — voir note ci-dessous.
registry_password ❌ (vide) Mot de passe associé à l'utilisateur — voir note ci-dessous.
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).

Note : build-push-multiarch est une action composite (runs.using: composite), qui n'a jamais accès au contexte secrets. registry_user et registry_password doivent donc être passés explicitement en with: par le workflow appelant.


▶️ 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 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 d’afficher toutes les étapes internes de façon plus verbeuse, grâce à la lib bashlib.sh.

🩺 Intégration Healthchecks

L’action utilise automatiquement l’action 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/