Docker Buildx

This commit is contained in:
Kroese 2023-11-29 02:06:49 +01:00 committed by GitHub
parent 931b58e0b3
commit 1cebedf097

View file

@ -26,35 +26,18 @@ jobs:
needs: shellcheck needs: shellcheck
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
actions: write
packages: write packages: write
contents: read contents: read
steps: steps:
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- -
name: Checkout name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- -
name: Prepare Docker build name: Set up Docker Buildx
id: prepare uses: docker/setup-buildx-action@v3
run: |
PLATFORMS="linux/amd64,linux/arm64"
VERSION="${{ vars.MAJOR }}.${{ vars.MINOR }}"
TAGS=()
TAGS=("${{ secrets.DOCKERHUB_REPO }}:latest")
TAGS+=("${{ secrets.DOCKERHUB_REPO }}:${VERSION}")
TAGS+=("ghcr.io/${{ github.repository }}:latest")
TAGS+=("ghcr.io/${{ github.repository }}:${VERSION}")
echo "tags=${TAGS[@]}" >> $GITHUB_OUTPUT
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "docker_platforms=${PLATFORMS}" >> $GITHUB_OUTPUT
echo "build_date=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- -
name: Login into Docker Hub name: Login into Docker Hub
uses: docker/login-action@v3 uses: docker/login-action@v3
@ -70,34 +53,36 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- -
name: Build Docker image name: Build Docker image
id: build
run: | run: |
TAGS=(${{ steps.prepare.outputs.tags }}) PLATFORMS="linux/amd64,linux/arm64"
VERSION="${{ vars.MAJOR }}.${{ vars.MINOR }}"
echo "version=${VERSION}" >> $GITHUB_OUTPUT
BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
echo "Build date: ${{ steps.prepare.outputs.build_date }}" TAGS=()
echo "Docker platform: ${{ steps.prepare.outputs.docker_platforms }}" TAGS=("${{ secrets.DOCKERHUB_REPO }}:latest")
echo "Tags: ${{ steps.prepare.outputs.tags }}" TAGS+=("${{ secrets.DOCKERHUB_REPO }}:${VERSION}")
TAGS+=("ghcr.io/${{ github.repository }}:latest")
TAGS+=("ghcr.io/${{ github.repository }}:${VERSION}")
docker buildx build --platform ${{ steps.prepare.outputs.docker_platforms }} \ docker buildx build --platform ${PLATFORMS} \
--output "type=image,push=true" \ --output "type=image,push=true" \
--progress=plain \ --progress=plain \
--build-arg "BUILD_ARG=${GITHUB_RUN_ID}" \ --build-arg "BUILD_ARG=${GITHUB_RUN_ID}" \
--build-arg "VERSION_ARG=${{ steps.prepare.outputs.version }}" \ --build-arg "VERSION_ARG=${VERSION}" \
--build-arg "DATE_ARG=${{ steps.prepare.outputs.build_date }}" \ --build-arg "DATE_ARG=${BUILD_DATE}" \
--build-arg "VCS_REF=${GITHUB_SHA::8}" \ --build-arg "VCS_REF=${GITHUB_SHA::8}" \
$(printf "%s" "${TAGS[@]/#/ --tag }" ) . $(printf "%s" "${TAGS[@]/#/ --tag }" ) .
-
name: Clear Docker credentials
run: |
rm -f ${HOME}/.docker/config.json
- -
name: Create a release name: Create a release
uses: action-pack/github-release@v2 uses: action-pack/github-release@v2
env: env:
GITHUB_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }} GITHUB_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }}
with: with:
tag: "v${{ steps.prepare.outputs.version }}" tag: "v${{ steps.build.outputs.version }}"
title: "v${{ steps.prepare.outputs.version }}" title: "v${{ steps.build.outputs.version }}"
- -
name: Increment version variable name: Increment version variable
uses: action-pack/bump@v2 uses: action-pack/bump@v2