Skip to content

Merge pull request #5 from QGreenland-Net/use-custom-image #6

Merge pull request #5 from QGreenland-Net/use-custom-image

Merge pull request #5 from QGreenland-Net/use-custom-image #6

name: "Build and publish container image"
on:
push:
paths:
- "Dockerfile"
- "environment.yml"
branches:
- "main"
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"
jobs:
build-and-release-image:
name: "Build and release container image"
runs-on: "ubuntu-latest"
env:
# IMAGE_NAME: "${{ github.repo_name_or_something_like_that }}"
# NOTE: It's important that the image name matches org name / repo name.
# TODO: Calculate image name?
IMAGE_NAME: "qgreenland-net/parsl-exploration"
# GitHub Actions expressions don't have great conditional support, so
# writing a ternary expression looks a lot like bash. In Python, this
# would read as:
# github.ref_name if github.ref_type == 'tag' else 'latest'
# https://docs.github.com/en/actions/learn-github-actions/expressions
IMAGE_TAG: "${{ github.ref_type == 'tag' && github.ref_name || 'latest' }}"
steps:
- name: "Check out repository"
uses: "actions/checkout@v3"
- name: "Build container image"
run: |
docker build --tag "ghcr.io/${IMAGE_NAME}:${IMAGE_TAG}" .
- name: "GHCR login"
uses: "docker/login-action@v2"
with:
registry: "ghcr.io"
username: "${{ github.repository_owner }}"
password: "${{ secrets.GITHUB_TOKEN }}"
- name: "Push to GHCR"
run: |
docker push "ghcr.io/${IMAGE_NAME}:${IMAGE_TAG}"