From 02a4f948a8aba357bc0eb30edea56b9c56c47672 Mon Sep 17 00:00:00 2001 From: bo0tzz Date: Sat, 25 Jun 2022 14:01:06 +0200 Subject: [PATCH] Build docker image and push to ghcr.io --- .github/workflows/buildx.yaml | 59 ++++++++++++++--------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/.github/workflows/buildx.yaml b/.github/workflows/buildx.yaml index 1938731..3ceb89a 100644 --- a/.github/workflows/buildx.yaml +++ b/.github/workflows/buildx.yaml @@ -2,6 +2,8 @@ name: buildx on: push: + branches: + - master tags: - 'v*' @@ -9,17 +11,16 @@ jobs: buildx: runs-on: ubuntu-latest steps: - - - name: Checkout + - name: Checkout uses: actions/checkout@v2 - - - name: Prepare + + - name: Prepare id: prepare run: | - DOCKER_IMAGE=andreimarcu/linx-server + DOCKER_IMAGE=ghcr.io/${{ github.repository_owner }}/linx-server DOCKER_PLATFORMS=linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/386 - VERSION=version-${GITHUB_REF#refs/tags/v} - TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:latest" + VERSION=${GITHUB_REF#refs/tags/v} + TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:latest --tag ${DOCKER_IMAGE}:${GITHUB_SHA::8}" echo ::set-output name=docker_image::${DOCKER_IMAGE} echo ::set-output name=version::${VERSION} @@ -28,33 +29,21 @@ jobs: --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \ --build-arg VCS_REF=${GITHUB_SHA::8} \ ${TAGS} --file Dockerfile . - - - name: Set up Docker Buildx + + - name: Login to GHCR + uses: docker/login-action@v2 + if: github.event_name != 'pull_request' + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Docker Buildx uses: crazy-max/ghaction-docker-buildx@v3 - - - name: Docker Buildx (build) - run: | - docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} - - - name: Docker Login + + - name: Docker Buildx (build) + run: docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }} + + - name: Docker Buildx (push) if: success() - env: - DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} - DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - run: | - echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin - - - name: Docker Buildx (push) - if: success() - run: | - docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }} - - - name: Docker Check Manifest - if: always() - run: | - docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }} - - - name: Clear - if: always() - run: | - rm -f ${HOME}/.docker/config.json + run: docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }}