forked from TrueCloudLab/frostfs-http-gw
workflow: add workflow to push images to Docker Hub
This commit is contained in:
parent
df43caa951
commit
6301a2c6b8
1 changed files with 82 additions and 0 deletions
82
.github/workflows/publish_to_dockerhub.yml
vendored
Normal file
82
.github/workflows/publish_to_dockerhub.yml
vendored
Normal file
|
@ -0,0 +1,82 @@
|
|||
name: Push images to DockerHub
|
||||
|
||||
# Controls when the action will run.
|
||||
on:
|
||||
push:
|
||||
# Publish `master` as Docker `latest` and `git_revision` images.
|
||||
branches:
|
||||
- master
|
||||
release:
|
||||
# Publish released commit as Docker `latest` and `git_revision` images.
|
||||
types:
|
||||
- published
|
||||
|
||||
# Allows to run this workflow manually from the Actions tab.
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
ref:
|
||||
description: 'Ref to build Docker image [default: latest master; examples: v0.92.0, 0a4ff9d3e4a9ab432fd5812eb18c98e03b5a7432]'
|
||||
required: false
|
||||
default: ''
|
||||
push_image:
|
||||
description: 'Push image to DockerHub [default: false; examples: true, false]'
|
||||
required: false
|
||||
default: 'false'
|
||||
|
||||
# A workflow run.
|
||||
jobs:
|
||||
publish:
|
||||
name: Publish image to DockerHub
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- name: Checkout (manual run)
|
||||
if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.event.inputs.ref }}
|
||||
# Allows to fetch all history for all branches and tags. Need this for proper versioning.
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Checkout (automatical run)
|
||||
if: ${{ github.event_name != 'workflow_dispatch' }}
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
# Allows to fetch all history for all branches and tags. Need this for proper versioning.
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v2
|
||||
with:
|
||||
go-version: 1.16
|
||||
|
||||
- name: Restore go modules from cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: /home/runner/go/pkg/mod
|
||||
key: deps-${{ hashFiles('go.sum') }}
|
||||
|
||||
- name: Update Go modules
|
||||
run: go mod download -json
|
||||
|
||||
- name: Build image
|
||||
run: make image
|
||||
|
||||
- name: Build image with 'latest' tag
|
||||
if: ${{ github.event_name == 'release' && github.event.release.target_commitish == 'master' }}
|
||||
run: make image
|
||||
env:
|
||||
HUB_TAG:latest
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Push image to registry
|
||||
if: ${{ github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.push_image == 'true') }}
|
||||
run: make image-push
|
||||
|
||||
- name: Push image with 'latest' tag to registry
|
||||
if: ${{ github.event_name == 'release' && github.event.release.target_commitish == 'master' }}
|
||||
run: make image-push-latest
|
Loading…
Reference in a new issue