UNPKG

@ammar-ahmed/automation-app-bot

Version:
67 lines (58 loc) 2.07 kB
name: Docker Release on: push: tags: - '*' branches: - master permissions: contents: read jobs: init: permissions: contents: none runs-on: ubuntu-latest outputs: do_docker: ${{ steps.vars.outputs.IS_DOCKERHUB_PUSH }} steps: - name: Initialize workflow variables shell: bash run: | # work-around for inaccessible 'secrets' object for 'if'; see <https://github.community/t5/GitHub-Actions/jobs-lt-job-id-gt-if-does-not-work-with-env-secrets/m-p/38549>) unset IS_DOCKERHUB_PUSH if [ -z "$DOCKERHUB_PUSH" ]; then IS_DOCKERHUB_PUSH='false'; else IS_DOCKERHUB_PUSH='true' ; fi echo set-output name=IS_DOCKERHUB_PUSH::${IS_DOCKERHUB_PUSH} echo ::set-output name=IS_DOCKERHUB_PUSH::${IS_DOCKERHUB_PUSH} env: DOCKERHUB_PUSH: ${{ secrets.DOCKERHUB_PUSH }} build: name: Build and push Docker image runs-on: ubuntu-latest needs: [init] if: ${{ needs.init.outputs.do_docker == 'true' }} steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push latest uses: docker/build-push-action@v5 if: github.ref == 'refs/heads/master' with: push: true tags: ${{ secrets.DOCKERHUB_REPO }}:latest - name: Set version variable id: version if: startsWith(github.ref, 'refs/tags/') run: echo ::set-output name=TAG::${GITHUB_REF#refs/tags/} - name: Build and push tag uses: docker/build-push-action@v5 if: startsWith(github.ref, 'refs/tags/') with: push: true tags: ${{ secrets.DOCKERHUB_REPO }}:${{ steps.version.outputs.TAG }}