# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. 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: ref: ${{ env.TARGET_REF }} submodules: true - 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 tags: ${{ secrets.DOCKERHUB_PACKAGE_NAME }}:latest,${{ secrets.DOCKERHUB_PACKAGE_NAME }}:${{ env.TARGET_REF }}