# 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-22.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 }}, ${{ env.DOCKER_REPO }}:latest