Skip to content

Commit

Permalink
chore: add action to publish docker image on ghcr.io
Browse files Browse the repository at this point in the history
  • Loading branch information
czosel committed Feb 11, 2022
1 parent 5f03d16 commit 60c823d
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/ghcr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Container image

on:
release:
types: [created]

# Run build for any PRs - we won't push in those however
pull_request:
branches:
- master

# Publish `master` as Docker `latest` image.
push:
branches:
- master

env:
IMAGE_NAME: emeis

jobs:
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
container-registry:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read

steps:
- uses: actions/checkout@v2

- name: Build image
run: docker build . --file Dockerfile --tag $IMAGE_NAME --label "runnumber=${GITHUB_RUN_ID}"

- name: Log in to registry
if: github.event_name != 'pull_request'
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin

- name: Push image
if: github.event_name != 'pull_request'
run: |
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Use Docker `latest` tag convention
if [[ "$VERSION" == "master" ]]; then
# only push "dev" image from master branch build
echo "Pushing $IMAGE_ID:dev"
docker tag $IMAGE_NAME $IMAGE_ID:dev
docker push $IMAGE_ID:dev
else
# new version released - push "latest" and version tag
echo "Pushing $IMAGE_ID:$VERSION"
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
echo "Pushing $IMAGE_ID:latest"
docker tag $IMAGE_NAME $IMAGE_ID:latest
docker push $IMAGE_ID:latest
fi

0 comments on commit 60c823d

Please sign in to comment.