Enhancement: Add ca-certificates across variants
#114
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci-master-pr | |
| on: | |
| push: | |
| branches: | |
| - master | |
| tags: | |
| - '**' | |
| pull_request: | |
| branches: | |
| - master | |
| merge_group: | |
| jobs: | |
| test-nogitdiff: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: mcr.microsoft.com/powershell:lts-7.2-alpine-3.17 | |
| steps: | |
| - run: | | |
| apk add --no-cache git | |
| - uses: actions/checkout@v4 | |
| - name: Ignore git permissions | |
| run: | | |
| git config --global --add safe.directory "$( pwd )" | |
| - name: Generate variants | |
| run: | | |
| pwsh -Command ' | |
| $ErrorActionPreference = "Stop" | |
| Install-Module -Name Generate-DockerImageVariants -Force -Scope CurrentUser -Verbose | |
| Generate-DockerImageVariants . | |
| ' | |
| - name: Test - no git diff | |
| run: | | |
| git diff --exit-code | |
| build-3-20: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Display system info (linux) | |
| run: | | |
| set -e | |
| hostname | |
| whoami | |
| cat /etc/*release | |
| lscpu | |
| free | |
| df -h | |
| pwd | |
| docker info | |
| docker version | |
| # See: https://github.com/docker/build-push-action/blob/v2.6.1/docs/advanced/cache.md#github-cache | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Cache Docker layers | |
| uses: actions/cache@v4 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: ${{ runner.os }}-buildx-3.20-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-buildx-3.20- | |
| ${{ runner.os }}-buildx- | |
| - name: Login to Docker Hub registry | |
| # Run on master and tags | |
| if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_REGISTRY_USER }} | |
| password: ${{ secrets.DOCKERHUB_REGISTRY_PASSWORD }} | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-20 | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.20" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.20 - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20 | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20 - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20 - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20.outputs.REF_SHA_VARIANT }} | |
| ${{ github.repository }}:latest | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-20-mysqlclient | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.20-mysqlclient" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.20-mysqlclient - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-mysqlclient | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20-mysqlclient - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20-mysqlclient - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-20-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.20-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.20-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-20-mysqlclient-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.20-mysqlclient-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.20-mysqlclient-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-mysqlclient-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20-mysqlclient-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.20-mysqlclient-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.20-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-20-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # Temp fix | |
| # https://github.com/docker/build-push-action/issues/252 | |
| # https://github.com/moby/buildkit/issues/1896 | |
| - name: Move cache | |
| run: | | |
| rm -rf /tmp/.buildx-cache | |
| mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
| build-3-17: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Display system info (linux) | |
| run: | | |
| set -e | |
| hostname | |
| whoami | |
| cat /etc/*release | |
| lscpu | |
| free | |
| df -h | |
| pwd | |
| docker info | |
| docker version | |
| # See: https://github.com/docker/build-push-action/blob/v2.6.1/docs/advanced/cache.md#github-cache | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Cache Docker layers | |
| uses: actions/cache@v4 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: ${{ runner.os }}-buildx-3.17-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-buildx-3.17- | |
| ${{ runner.os }}-buildx- | |
| - name: Login to Docker Hub registry | |
| # Run on master and tags | |
| if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_REGISTRY_USER }} | |
| password: ${{ secrets.DOCKERHUB_REGISTRY_PASSWORD }} | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-17 | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.17" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.17 - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17 | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17 - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17 - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17.outputs.REF_SHA_VARIANT }} | |
| ${{ github.repository }}:latest | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-17-mysqlclient | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.17-mysqlclient" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.17-mysqlclient - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-mysqlclient | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17-mysqlclient - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17-mysqlclient - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-17-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.17-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.17-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-17-mysqlclient-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.17-mysqlclient-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.17-mysqlclient-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-mysqlclient-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17-mysqlclient-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.17-mysqlclient-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.17-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-17-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # Temp fix | |
| # https://github.com/docker/build-push-action/issues/252 | |
| # https://github.com/moby/buildkit/issues/1896 | |
| - name: Move cache | |
| run: | | |
| rm -rf /tmp/.buildx-cache | |
| mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
| build-3-15: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Display system info (linux) | |
| run: | | |
| set -e | |
| hostname | |
| whoami | |
| cat /etc/*release | |
| lscpu | |
| free | |
| df -h | |
| pwd | |
| docker info | |
| docker version | |
| # See: https://github.com/docker/build-push-action/blob/v2.6.1/docs/advanced/cache.md#github-cache | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Cache Docker layers | |
| uses: actions/cache@v4 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: ${{ runner.os }}-buildx-3.15-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-buildx-3.15- | |
| ${{ runner.os }}-buildx- | |
| - name: Login to Docker Hub registry | |
| # Run on master and tags | |
| if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_REGISTRY_USER }} | |
| password: ${{ secrets.DOCKERHUB_REGISTRY_PASSWORD }} | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-15 | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.15" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.15 - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15 | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15 - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15 - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15.outputs.REF_SHA_VARIANT }} | |
| ${{ github.repository }}:latest | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-15-mysqlclient | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.15-mysqlclient" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.15-mysqlclient - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-mysqlclient | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15-mysqlclient - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15-mysqlclient - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-15-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.15-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.15-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-15-mysqlclient-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.15-mysqlclient-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.15-mysqlclient-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-mysqlclient-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15-mysqlclient-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.15-mysqlclient-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.15-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-15-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # Temp fix | |
| # https://github.com/docker/build-push-action/issues/252 | |
| # https://github.com/moby/buildkit/issues/1896 | |
| - name: Move cache | |
| run: | | |
| rm -rf /tmp/.buildx-cache | |
| mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
| build-3-12: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Display system info (linux) | |
| run: | | |
| set -e | |
| hostname | |
| whoami | |
| cat /etc/*release | |
| lscpu | |
| free | |
| df -h | |
| pwd | |
| docker info | |
| docker version | |
| # See: https://github.com/docker/build-push-action/blob/v2.6.1/docs/advanced/cache.md#github-cache | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| id: buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Cache Docker layers | |
| uses: actions/cache@v4 | |
| with: | |
| path: /tmp/.buildx-cache | |
| key: ${{ runner.os }}-buildx-3.12-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-buildx-3.12- | |
| ${{ runner.os }}-buildx- | |
| - name: Login to Docker Hub registry | |
| # Run on master and tags | |
| if: github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_REGISTRY_USER }} | |
| password: ${{ secrets.DOCKERHUB_REGISTRY_PASSWORD }} | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-12 | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.12" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.12 - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12 | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12 - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12 - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12 | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12.outputs.REF_SHA_VARIANT }} | |
| ${{ github.repository }}:latest | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-12-mysqlclient | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.12-mysqlclient" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.12-mysqlclient - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-mysqlclient | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12-mysqlclient - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12-mysqlclient - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-mysqlclient | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-12-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.12-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.12-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # This step generates the docker tags | |
| - name: Prepare | |
| id: prep-3-12-mysqlclient-openssl | |
| run: | | |
| set -e | |
| # Get ref, i.e. <branch_name> from refs/heads/<branch_name>, or <tag-name> from refs/tags/<tag_name>. E.g. 'master' or 'v0.0.0' | |
| REF=$( echo "${GITHUB_REF}" | rev | cut -d '/' -f 1 | rev ) | |
| # Get short commit hash E.g. 'abc0123' | |
| SHA=$( echo "${GITHUB_SHA}" | cut -c1-7 ) | |
| # Generate docker image tags | |
| # E.g. 'v0.0.0-<variant>' and 'v0.0.0-abc0123-<variant>' | |
| # E.g. 'master-<variant>' and 'master-abc0123-<variant>' | |
| VARIANT="3.12-mysqlclient-openssl" | |
| REF_VARIANT="${REF}-${VARIANT}" | |
| REF_SHA_VARIANT="${REF}-${SHA}-${VARIANT}" | |
| # Pass variables to next step | |
| echo "VARIANT_BUILD_DIR=$VARIANT_BUILD_DIR" >> $GITHUB_OUTPUT | |
| echo "VARIANT=$VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_VARIANT=$REF_VARIANT" >> $GITHUB_OUTPUT | |
| echo "REF_SHA_VARIANT=$REF_SHA_VARIANT" >> $GITHUB_OUTPUT | |
| - name: 3.12-mysqlclient-openssl - Build (PRs) | |
| # Run only on pull requests | |
| if: github.event_name == 'pull_request' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-mysqlclient-openssl | |
| platforms: | |
| push: false | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12-mysqlclient-openssl - Build and push (master) | |
| # Run only on master | |
| if: github.ref == 'refs/heads/master' | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| - name: 3.12-mysqlclient-openssl - Build and push (release) | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: variants/3.12-mysqlclient-openssl | |
| platforms: | |
| push: true | |
| tags: | | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient-openssl.outputs.VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient-openssl.outputs.REF_VARIANT }} | |
| ${{ github.repository }}:${{ steps.prep-3-12-mysqlclient-openssl.outputs.REF_SHA_VARIANT }} | |
| cache-from: type=local,src=/tmp/.buildx-cache | |
| cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
| # Temp fix | |
| # https://github.com/docker/build-push-action/issues/252 | |
| # https://github.com/moby/buildkit/issues/1896 | |
| - name: Move cache | |
| run: | | |
| rm -rf /tmp/.buildx-cache | |
| mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
| update-draft-release: | |
| needs: | |
| - build-3-20 | |
| - build-3-17 | |
| - build-3-15 | |
| - build-3-12 | |
| if: github.ref == 'refs/heads/master' | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Drafts your next Release notes as Pull Requests are merged into "master" | |
| - uses: release-drafter/release-drafter@v6 | |
| with: | |
| config-name: release-drafter.yml | |
| publish: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| publish-draft-release: | |
| needs: | |
| - build-3-20 | |
| - build-3-17 | |
| - build-3-15 | |
| - build-3-12 | |
| if: startsWith(github.ref, 'refs/tags/') | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Drafts your next Release notes as Pull Requests are merged into "master" | |
| - uses: release-drafter/release-drafter@v6 | |
| with: | |
| config-name: release-drafter.yml | |
| publish: true | |
| name: ${{ github.ref_name }} # E.g. 'master' or 'v1.2.3' | |
| tag: ${{ github.ref_name }} # E.g. 'master' or 'v1.2.3' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| update-dockerhub-description: | |
| needs: | |
| - build-3-20 | |
| - build-3-17 | |
| - build-3-15 | |
| - build-3-12 | |
| if: github.ref == 'refs/heads/master' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Docker Hub Description | |
| uses: peter-evans/dockerhub-description@v4 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_REGISTRY_USER }} | |
| password: ${{ secrets.DOCKERHUB_REGISTRY_PASSWORD }} | |
| repository: ${{ github.repository }} | |
| short-description: ${{ github.event.repository.description }} |