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@v4 - run: | npm install -g json MOCK_SAML_VERSION=$(echo $(cat ./package.json) | json version) echo "NPMVERSION=$(echo ${MOCK_SAML_VERSION})" >> $GITHUB_OUTPUT id: npmversion - name: Get short SHA id: slug run: echo "SHA7=$(echo ${GITHUB_SHA} | cut -c1-7)" >> $GITHUB_OUTPUT - run: echo ${{ steps.slug.outputs.SHA7 }} - run: echo ${{ steps.npmversion.outputs.NPMVERSION }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub if: github.ref == 'refs/heads/release' uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and push id: docker_build uses: docker/build-push-action@v5 with: context: ./ file: ./Dockerfile platforms: linux/amd64,linux/arm64 push: ${{ github.ref == 'refs/heads/release' }} 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 }}