No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-30 16:47:02 +02:00
action.yaml feat: add conditional execution to container tool installation steps 2026-08-30 16:40:34 +02:00
README.md chore: update default tag and push commands to docker 2026-08-30 11:42:56 +02:00

L'action build-push-image

Cette action permet de construire une image conteneur, de la taguer, de la pousser vers un registre et de notifier Healthchecks.io à chaque étape.
Elle intègre des fonctionnalités de gestion de versions, de notifications et supporte Docker ou Podman.


🔧 Utilisation

- name: Build and push image
  uses: https://gargoton.petite-maison-orange.fr/pmo-actions/build-push-image@main
  with:
    image_name: mon-projet
    image_tags: latest
    check_server: https://haoma.petite-maison-orange.fr
    check_uuid: x1y2z3-1234-5678-9abc-def123456789

📥 Paramètres

Nom Obligatoire Par défaut Description
image_name ✅ – Nom de l'image à construire
image_tags ✅ – Tags de l'image (séparés par des espaces)
add_version_tag ❌ true Ajoute un tag basé sur la version (ex: pmo-1.2.3)
version_tag_prefix ❌ pmo Préfixe du tag de version
build_command ❌ docker Outil de build (docker/podman)
tag_command ❌ docker Outil de tagging (docker/podman)
push_command ❌ docker Outil de push (docker/podman/skopeo)
registry_server ❌ niepce.petite-maison-orange.fr URL du registre
registry_user ❌ (vide) Utilisateur du registre — voir note ci-dessous
registry_password ❌ (vide) Mot de passe du registre — voir note ci-dessous
version_file ❌ software_version.txt Fichier contenant la version
check_server ❌ https://haoma.petite-maison-orange.fr Serveur Healthchecks (vide = désactivé)
check_uuid ❌ – UUID de la vérification Healthchecks
debug ❌ false Active les logs de débogage

Note : build-push-image est une action composite (runs.using: composite). Ce type d'action n'a jamais accès au contexte secrets — contrairement aux workflows réutilisables (on: workflow_call), qui eux supportent secrets: inherit. registry_user et registry_password doivent donc toujours être passés explicitement en with: par le workflow appelant, qui lit les secrets de son propre dépôt (${{ secrets.PMO_REGISTRY_USER }} / ${{ secrets.PMO_REGISTRY_PASSWORD }}, ou tout autre nom de secret configuré côté appelant).


▶️ Exemple de workflow complet

name: Build and Deploy

on: [push]

jobs:
  build:
    runs-on: self-hosted
    steps:
      - name: Build and push image
        uses: https://gargoton.petite-maison-orange.fr/pmo-actions/build-push-image@main
        with:
          image_name: api-server
          image_tags: "latest staging"
          add_version_tag: true
          version_tag_prefix: "v"
          build_command: podman
          registry_server: registry.example.com
          registry_user: ${{ secrets.REGISTRY_USER }}
          registry_password: ${{ secrets.REGISTRY_PASSWORD }}
          check_server: https://hc-ping.com
          check_uuid: a1b2c3d4-1234-5678-9abc-def123456789
          debug: true

⚙️ Comportement

Étapes clés

  1. Notifications Healthchecks (si activé) :

    • Début de la tâche (start)
    • Log pendant le build (log)
    • Échec en cas d'annulation/erreur (fail)
    • Succès final (stop)
  2. Gestion des versions :

    • Récupère la version depuis software_version.txt
    • Ajoute un tag versionné (ex: pmo-1.0.0)
  3. Construction de l'image :

    • Installation auto de Podman si besoin
    • Build avec docker/podman
  4. Push vers le registre :

    • Authentification automatique
    • Push multi-tags

🧡 À propos

Cette action fait partie des actions de la Petite Maison Orange.
👉 https://gargoton.petite-maison-orange.fr/pmo-actions/