name: Docker Hub Release # Runs when a new release is published on GitHub. # Creates a corresponding Docker Hub release and publishes it. # # Can also be run manually for debugging purposes. on: release: types: [published] # For manual debugging: workflow_dispatch: inputs: ref: description: "The tag to release to Docker Hub." required: True jobs: publish_docker_hub: name: Publish to Docker Hub runs-on: ubuntu-latest steps: - name: Compute ref id: ref # We could be building from a workflow dispatch (manual run), or a # release event. Subsequent steps can refer to $TARGET_REF to # determine the correct ref in all cases. run: | echo "TARGET_REF=${{ github.event.inputs.ref || github.event.release.tag_name }}" >> $GITHUB_ENV - name: Checkout code uses: actions/checkout@v2 with: path: src ref: ${{ env.TARGET_REF }} - name: Log in to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_CI_USERNAME }} password: ${{ secrets.DOCKERHUB_CI_TOKEN }} - name: Push to Docker Hub uses: docker/build-push-action@v2 with: push: true context: src/ tags: ${{ secrets.DOCKERHUB_PACKAGE_NAME }}:latest,${{ secrets.DOCKERHUB_PACKAGE_NAME }}:${{ env.TARGET_REF }}