name: publish docker image
on:
push:
tags:
- "docker-*"
jobs:
publish-docker:
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- uses: actions/checkout@v4
- name: Extract image version
id: meta
shell: bash
run: |
set -euo pipefail
tag="${GITHUB_REF_NAME}"
version="${tag#docker-}"
if [[ -z "${version}" ]]; then
echo "Unable to derive version from docker tag ${tag}" >&2
exit 1
fi
echo "version=${version}" >> "${GITHUB_OUTPUT}"
- name: Build image
run: docker build . --file Dockerfile --tag turn-server --label "runnumber=${GITHUB_RUN_ID}"
- name: Log in to registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
- name: Push image
env:
IMAGE_VERSION: ${{ steps.meta.outputs.version }}
run: |
IMAGE_ID=$(echo "ghcr.io/${{ github.repository_owner }}/turn-server" | tr '[A-Z]' '[a-z]')
docker tag turn-server $IMAGE_ID:${IMAGE_VERSION}
docker push $IMAGE_ID:${IMAGE_VERSION}
docker tag turn-server $IMAGE_ID:latest
docker push $IMAGE_ID:latest