54 lines
2.1 KiB
YAML
54 lines
2.1 KiB
YAML
|
# This is an example GitHub action that will build and publish a Docker image to DockerHub
|
||
|
# You need to add the following secrets to your GitHub Repository or Organization to make this work
|
||
|
# - DOCKER_USERNAME: The username of the DockerHub account. E.g. parity
|
||
|
# - DOCKER_TOKEN: Access token for DockerHub, see https://docs.docker.com/docker-hub/access-tokens/. E.g. VVVVVVVV-WWWW-XXXXXX-YYYY-ZZZZZZZZZ
|
||
|
# The following are setup as an environment variable below
|
||
|
# - DOCKER_REPO: The unique name of the DockerHub repository. E.g. parity/polkadot
|
||
|
|
||
|
name: Build & Publish Docker Image
|
||
|
|
||
|
# Controls when the action will run.
|
||
|
on:
|
||
|
# Triggers the workflow on push events but only for the main branch
|
||
|
# push:
|
||
|
# branches: [ main ]
|
||
|
|
||
|
# Allows you to run this workflow manually from the Actions tab
|
||
|
workflow_dispatch:
|
||
|
|
||
|
# Set an environment variable (that can be overriden) for the Docker Repo
|
||
|
env:
|
||
|
DOCKER_REPO: parity/polkadot
|
||
|
|
||
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||
|
jobs:
|
||
|
build:
|
||
|
# The type of runner that the job will run on
|
||
|
runs-on: ubuntu-20.04
|
||
|
|
||
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
||
|
steps:
|
||
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||
|
- name: Check out the repo
|
||
|
uses: actions/checkout@v2.5.0
|
||
|
|
||
|
# Login to Docker hub using the credentials stored in the repository secrets
|
||
|
- name: Log in to Docker Hub
|
||
|
uses: docker/login-action@v2.1.0
|
||
|
with:
|
||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||
|
password: ${{ secrets.DOCKER_TOKEN }}
|
||
|
|
||
|
# Get the commit short hash, to use as the rev
|
||
|
- name: Calculate rev hash
|
||
|
id: rev
|
||
|
run: echo "value=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||
|
|
||
|
# Build and push 2 images, One with the version tag and the other with latest tag
|
||
|
- name: Build and push Docker images
|
||
|
uses: docker/build-push-action@v3.2.0
|
||
|
with:
|
||
|
context: .
|
||
|
push: true
|
||
|
tags: ${{ env.DOCKER_REPO }}:v${{ steps.rev.outputs.value }}, ${{ secrets.DOCKER_REPO }}:latest
|