From f4871351875ec2ed217179a7ba2eaa1b513da338 Mon Sep 17 00:00:00 2001 From: alavenant Date: Mon, 15 Jul 2024 15:30:03 +0200 Subject: [PATCH] Push docker (#18) * update docker action : push on ghcr --- .github/workflows/cicd_docker.yml | 54 +++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cicd_docker.yml b/.github/workflows/cicd_docker.yml index 1adcbff..70e3367 100644 --- a/.github/workflows/cicd_docker.yml +++ b/.github/workflows/cicd_docker.yml @@ -1,13 +1,20 @@ name: cicd_docker on: - # Run tests for non-draft pull request on main + push: + branches: [ "main" ] + tags: [ 'v*.*.*' ] pull_request: - branches: - - main + branches: [ "main" ] + +permissions: + packages: write env: + IMAGE_NAME: ${{ github.repository }} + REGISTRY: ghcr.io DOCKER_IMAGE_NAME: pdal_ign_plugin + TEST_TAG: pdal_ign_plugin:test jobs: build_docker_image_and_run_tests: @@ -18,10 +25,45 @@ jobs: - name: Checkout branch uses: actions/checkout@v4 - - name: Build docker image - run: docker build -t ${{ env.DOCKER_IMAGE_NAME }}:test . + # build the image + - name: Build and push Docker image + id: build + uses: docker/build-push-action@v5 + with: + load: true + tags: ${{ env.TEST_TAG }} + # run the test on the docker build - name: Run tests in docker image - run: docker run ${{ env.DOCKER_IMAGE_NAME }}:test python -m pytest + run: docker run ${{ env.TEST_TAG }} python -m pytest + + # Login against a Docker registry except on PR + # https://github.com/docker/login-action + - name: Log into registry ${{ env.REGISTRY }} + if: github.event_name != 'pull_request' + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + # Extract metadata (tags, labels) for Docker + # https://github.com/docker/metadata-action + - name: Extract Docker metadata + if: github.event_name != 'pull_request' + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + # Build and push Docker image with Buildx (don't on PR) + # https://github.com/docker/build-push-action + - name: Build and push Docker image + id: build-and-push + if: ${{ github.event_name != 'pull_request' }} + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }}