Skip to content

ugh... still post versioning #290

ugh... still post versioning

ugh... still post versioning #290

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Build stable container image to GitHub Container Registry
on:
push:
branches:
- stable
env:
REGISTRY: ghcr.io
IMAGE_NAME: sarracenia
jobs:
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
push:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Rename image for publication
run: |
IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
# Get actual tagged version
TAG_VERSION=$(git describe --exact-match)
# 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 when building from stable branch, otherwise branch/tag name is used
#[ "$VERSION" == "stable" ] && VERSION=latest
echo IMAGE_ID=$IMAGE_ID >> $GITHUB_ENV
echo VERSION=$VERSION >> $GITHUB_ENV
echo TAG_VERSION=$TAG_VERSION >> $GITHUB_ENV
- name: Build and push
uses: docker/build-push-action@v2.7.0
with:
context: ./
file: ./Dockerfile
platforms: linux/arm64, linux/amd64
push: true
tags: |
${{ env.IMAGE_ID }}:latest
${{ env.IMAGE_ID }}:${{ env.VERSION }}
${{ env.IMAGE_ID }}:${{ env.TAG_VERSION }}