69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
|
# Copyright 2022 Google LLC
|
||
|
#
|
||
|
# Use of this source code is governed by a BSD-style
|
||
|
# license that can be found in the LICENSE file or at
|
||
|
# https://developers.google.com/open-source/licenses/bsd
|
||
|
|
||
|
# A workflow to publish the official docker image.
|
||
|
name: Publish to Docker Hub
|
||
|
|
||
|
# Runs when called from another workflow.
|
||
|
# Can also be run manually for debugging purposes.
|
||
|
on:
|
||
|
workflow_call:
|
||
|
inputs:
|
||
|
tag:
|
||
|
required: true
|
||
|
type: string
|
||
|
latest:
|
||
|
required: true
|
||
|
type: boolean
|
||
|
secrets:
|
||
|
DOCKERHUB_CI_USERNAME:
|
||
|
required: true
|
||
|
DOCKERHUB_CI_TOKEN:
|
||
|
required: true
|
||
|
DOCKERHUB_PACKAGE_NAME:
|
||
|
required: true
|
||
|
# For manual debugging:
|
||
|
workflow_dispatch:
|
||
|
inputs:
|
||
|
tag:
|
||
|
description: The tag to build from and to push to.
|
||
|
required: true
|
||
|
type: string
|
||
|
latest:
|
||
|
description: If true, push to the "latest" tag.
|
||
|
required: true
|
||
|
type: boolean
|
||
|
|
||
|
jobs:
|
||
|
publish_docker_hub:
|
||
|
name: Publish to Docker Hub
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- name: Checkout code
|
||
|
uses: actions/checkout@v3
|
||
|
with:
|
||
|
ref: ${{ inputs.tag }}
|
||
|
submodules: recursive
|
||
|
|
||
|
- name: Log in to Docker Hub
|
||
|
uses: docker/login-action@v3
|
||
|
with:
|
||
|
username: ${{ secrets.DOCKERHUB_CI_USERNAME }}
|
||
|
password: ${{ secrets.DOCKERHUB_CI_TOKEN }}
|
||
|
|
||
|
- name: Push to Docker Hub
|
||
|
uses: docker/build-push-action@v5
|
||
|
with:
|
||
|
push: true
|
||
|
tags: ${{ secrets.DOCKERHUB_PACKAGE_NAME }}:${{ inputs.tag }}
|
||
|
|
||
|
- name: Push to Docker Hub as "latest"
|
||
|
if: ${{ inputs.latest }}
|
||
|
uses: docker/build-push-action@v5
|
||
|
with:
|
||
|
push: true
|
||
|
tags: ${{ secrets.DOCKERHUB_PACKAGE_NAME }}:latest
|