⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Test before push with GitHub Actions


Dans certains cas, vous pourriez vouloir valider que l'image fonctionne comme attendu avant de la pousser. Le workflow suivant implémente plusieurs étapes pour atteindre cet objectif :

  1. Construire et exporter l'image vers Docker
  2. Tester votre image
  3. Construction multi-plateforme et pousser l'image
name: ci

on:
  push:

env:
  TEST_TAG: user/app:test
  LATEST_TAG: user/app:latest

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ vars.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build and export to Docker
        uses: docker/build-push-action@v6
        with:
          load: true
          tags: ${{ env.TEST_TAG }}

      - name: Test
        run: |
          docker run --rm ${{ env.TEST_TAG }}

      - name: Build and push
        uses: docker/build-push-action@v6
        with:
          platforms: linux/amd64,linux/arm64
          push: true
          tags: ${{ env.LATEST_TAG }}
Note

L'image linux/amd64 n'est construite qu'une seule fois dans ce workflow. L'image est construite une fois, et les étapes suivantes utilisent le cache interne de la première étape Build and push. La seconde étape Build and push ne construit que linux/arm64.