mirror of
https://github.com/storytold/storyteller-ml.git
synced 2026-10-13 23:53:02 +00:00
197f13fa5e
These have a lot of cruft, but it should work. I'll switch over to using this from the python code in the Rust monorepo
66 lines
2.1 KiB
YAML
66 lines
2.1 KiB
YAML
# Adapted from
|
|
# https://github.com/actions/starter-workflows/ci/docker-publish.yml
|
|
# If using base images, don't forget to add READ access, eg. from a package settings page like:
|
|
# https://github.com/orgs/storytold/packages/container/docker-base-images-rust-ssl/settings/actions_access
|
|
name: Publish Docker Container to GHCR
|
|
on:
|
|
push:
|
|
branches:
|
|
# NB: Default-branch doesn't work, despite Github's documentation.
|
|
#- $default-branch
|
|
- master
|
|
env:
|
|
IMAGE_NAME: tts-core
|
|
|
|
jobs:
|
|
# Push image to GitHub Packages.
|
|
# See also https://docs.docker.com/docker-hub/builds/
|
|
push:
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'push'
|
|
permissions:
|
|
packages: write
|
|
contents: read
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ghcr.io
|
|
#username: ${{ github.repository_owner }}
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Build image
|
|
run: docker build . --file Dockerfile --tag $IMAGE_NAME --label "runnumber=${GITHUB_RUN_ID}"
|
|
|
|
- name: Push image to GitHub Container Registry
|
|
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
|
|
[ "$VERSION" == "$default-branch" ] && VERSION=latest
|
|
|
|
echo IMAGE_ID=$IMAGE_ID
|
|
echo VERSION=$VERSION
|
|
|
|
docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
|
|
docker push $IMAGE_ID:$VERSION
|
|
|
|
SHORT_SHA=$(echo ${GITHUB_SHA} | cut -c1-12)
|
|
|
|
docker tag $IMAGE_NAME $IMAGE_ID:$SHORT_SHA
|
|
docker push $IMAGE_ID:$SHORT_SHA
|
|
|