From 1f4a3ac410be81a90d04489215e7776473e870e8 Mon Sep 17 00:00:00 2001 From: Jose Quintana Date: Fri, 7 Jan 2022 13:07:30 +0100 Subject: [PATCH] chore: docker release pipelines [skip ci] --- .github/workflows/release.docker.yml | 75 ++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 27 deletions(-) diff --git a/.github/workflows/release.docker.yml b/.github/workflows/release.docker.yml index 1c6a962..267da8a 100644 --- a/.github/workflows/release.docker.yml +++ b/.github/workflows/release.docker.yml @@ -1,47 +1,68 @@ -name: release +name: release-docker on: release: types: published jobs: - docker-image: - runs-on: ${{ matrix.os }} - if: startsWith(github.ref, 'v2') - strategy: - matrix: - build: - - scratch - - alpine - include: - - build: scratch - os: ubuntu-20.04 - - build: alpine - os: ubuntu-20.04 + docker-image-alpine: + runs-on: ubuntu-20.04 + if: contains(github.ref, 'v2.') steps: - name: Checkout repository uses: actions/checkout@v2 - - name: Docker meta scratch - id: meta - if: matrix.build == 'scratch' + name: Docker meta alpine + id: meta_alpine uses: docker/metadata-action@v3 with: images: joseluisq/static-web-server + flavor: | + latest=false + suffix=-alpine tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} - - name: Docker meta alpine - id: meta + name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - + name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Prepare Docker envs + shell: bash + run: | + echo "SERVER_VERSION=${GITHUB_REF##*/v}" >> $GITHUB_ENV + echo "SERVER_DOCKERFILE=./docker/alpine/Dockerfile" >> $GITHUB_ENV + - + name: Build and push (alpine) + uses: docker/build-push-action@v2 + with: + push: true + context: . + file: ${{ env.SERVER_DOCKERFILE }} + tags: ${{ steps.meta_alpine.outputs.tags }} + build-args: | + SERVER_VERSION=${{ env.SERVER_VERSION }} + + docker-image-scratch: + needs: ['docker-image-alpine'] + runs-on: ubuntu-20.04 + steps: + - + name: Checkout repository + uses: actions/checkout@v2 + - + name: Docker meta scratch + id: meta_scratch uses: docker/metadata-action@v3 - if: matrix.build == 'alpine' with: images: joseluisq/static-web-server - flavor: | - latest=false - suffix=alpine tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -59,15 +80,15 @@ jobs: name: Prepare Docker envs shell: bash run: | - echo "SERVER_VERSION=${GITHUB_REF##v}" >> $GITHUB_ENV - echo "SERVER_DOCKERFILE=./docker/${{ matrix.build }}/Dockerfile" >> $GITHUB_ENV + echo "SERVER_VERSION=${GITHUB_REF##*/v}" >> $GITHUB_ENV + echo "SERVER_DOCKERFILE=./docker/scratch/Dockerfile" >> $GITHUB_ENV - - name: Build and push + name: Build and push (scratch) uses: docker/build-push-action@v2 with: push: true context: . file: ${{ env.SERVER_DOCKERFILE }} - tags: ${{ steps.meta.outputs.tags }} + tags: ${{ steps.meta_scratch.outputs.tags }} build-args: | SERVER_VERSION=${{ env.SERVER_VERSION }} -- libgit2 1.7.2