name: Publish Docker image on: push: branches: - master - develop release: types: - published - created - edited jobs: publish: name: Publish Image runs-on: ubuntu-latest steps: - id: repository uses: ASzc/change-string-case-action@v1 with: string: "${{ github.repository }}" - uses: actions/checkout@v2 - name: Preparation id: prep run: | REGISTRY="ghcr.io" IMAGE="${REGISTRY}/${{ steps.repository.outputs.lowercase }}" TAGS="${IMAGE}:${{ github.sha }},${IMAGE}:latest" REF=${GITHUB_REF,,} PREFIX="$(dirname $REF)" SUFFIX="$(basename $REF)" if [[ $PREFIX = "refs/heads" ]]; then TAGS="${TAGS},${IMAGE}:${SUFFIX}" elif [[ $PREFIX = "refs/tags" ]]; then RELEASE=${SUFFIX#"superalgos-"} TAGS="${TAGS},${IMAGE}:${RELEASE}" fi echo ::set-output name=tags::${TAGS} - name: Login in to registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ github.token }} - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Available platforms run: echo ${{ steps.buildx.outputs.platforms }} - name: Push to registry uses: docker/build-push-action@v2 with: push: true file: ./Docker/Dockerfile tags: ${{ steps.prep.outputs.tags }} platforms: linux/amd64,linux/arm64,linux/arm/v7