name: Build and Publish Docker on: push: branches: - '*' tags: - 'beta-v*' pull_request: types: [opened, synchronize, reopened] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build-and-push-docker-image: runs-on: ubuntu-latest steps: - name: Check Out Repo uses: actions/checkout@v3 - run: | npm install -g json MOCK_SAML_VERSION=$(echo $(cat ./package.json) | json version) echo "::set-output name=npmversion::$(echo ${MOCK_SAML_VERSION})" id: npmversion - name: Get short SHA id: slug run: echo "::set-output name=sha7::$(echo ${GITHUB_SHA} | cut -c1-7)" - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub if: github.ref == 'refs/heads/release' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and push if: github.ref == 'refs/heads/release' id: docker_build uses: docker/build-push-action@v3 with: context: ./ file: ./Dockerfile platforms: linux/amd64,linux/arm64,linux/arm64/v8 push: true tags: ${{ github.repository }}:latest,${{ github.repository }}:${{ steps.slug.outputs.sha7 }},${{ github.repository }}:${{ steps.npmversion.outputs.npmversion }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}