Skip to content

Merge pull request #10 from Harshad112/main #21

Merge pull request #10 from Harshad112/main

Merge pull request #10 from Harshad112/main #21

Workflow file for this run

name: Docker
# This will run when:
# - a new release is created, to make sure the right tags of the
# docker images are pushed (expects tags to be v1.8.4).
# - when new code is pushed to main/develop to push the tags
# latest and develop
# - when a pull request is created and updated to make sure the
# Dockerfile is still valid.
# To be able to push to dockerhub, this execpts the following
# secrets to be set in the project:
# - DOCKERHUB_USERNAME : username that can push to the org
# - DOCKERHUB_PASSWORD : password asscoaited with the username
on:
push:
branches:
- main
pull_request:
# Certain actions will only run when this is the main repo.
env:
MAIN_REPO: PecanProject/statusboard
DOCKERHUB_ORG: pecan
DOCKER_IMAGE: statusboard
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# calculate some variables that are used later
- name: Extractor Version
run: |
version="$(awk '/Version:/ { print $2 }' DESCRIPTION)"
echo "VERSION=${version}" >> $GITHUB_ENV
tags=""
oldversion=""
while [ "${oldversion}" != "${version}" ]; do
oldversion="${version}"
tags="${version},${tags}"
version=${version%.*}
done
tags="latest,${tags}"
echo "TAGS=${tags}" >> $GITHUB_ENV
# build the docker image, this will always run to make sure
# the Dockerfile still works.
- name: Build image
uses: elgohr/Publish-Docker-Github-Action@2.22
env:
VERSION: ${{ env.VERSION }}
BUILDNUMBER: ${{ github.run_number }}
GITSHA1: ${{ github.sha }}
with:
registry: docker.pkg.github.com
name: ${{ github.repository_owner }}/${{ github.event.repository.name }}/${{ env.DOCKER_IMAGE }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
tags: "${{ env.TAGS }}"
buildargs: VERSION,BUILDNUMBER,GITSHA1
no_push: true
# this will publish to github container registry
- name: Publish to GitHub
if: github.event_name == 'push' && github.repository == env.MAIN_REPO
uses: elgohr/Publish-Docker-Github-Action@2.22
env:
VERSION: ${{ env.VERSION }}
BUILDNUMBER: ${{ github.run_number }}
GITSHA1: ${{ github.sha }}
with:
registry: ghcr.io
name: ${{ github.repository_owner }}/${{ github.event.repository.name }}
username: ${{ secrets.GHCR_USERNAME }}
password: ${{ secrets.GHCR_PASSWORD }}
tags: "${{ env.TAGS }}"
buildargs: VERSION,BUILDNUMBER,GITSHA1
# this will publish to the clowder dockerhub repo
- name: Publish to Docker Hub
if: github.event_name == 'push' && github.repository == env.MAIN_REPO
uses: elgohr/Publish-Docker-Github-Action@2.22
env:
VERSION: ${{ env.VERSION }}
BUILDNUMBER: ${{ github.run_number }}
GITSHA1: ${{ github.sha }}
with:
name: ${{ env.DOCKERHUB_ORG }}/${{ github.event.repository.name }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
tags: "${{ env.TAGS }}"
buildargs: VERSION,BUILDNUMBER,GITSHA1
# this will update the README of the dockerhub repo
- name: check file
id: filecheck
if: github.event_name == 'push' && github.repository == env.MAIN_REPO
run: |
if [ -e "README.md" ]; then
echo "##[set-output name=exists;]true"
else
echo "##[set-output name=exists;]false"
fi
- name: Docker Hub Description
if: github.event_name == 'push' && github.repository == env.MAIN_REPO && steps.filecheck.outputs.exists == 'true'
uses: peter-evans/dockerhub-description@v2
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DOCKERHUB_REPOSITORY: ${{ env.DOCKERHUB_ORG }}/${{ github.event.repository.name }}
README_FILEPATH: README.md