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 :
- Construire et exporter l'image vers Docker
- Tester votre image
- 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 }}
NoteL'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 étapeBuild and push
. La seconde étapeBuild and push
ne construit quelinux/arm64
.