Skip to content

Merge pull request #10 from PortableProgrammer/dev #105

Merge pull request #10 from PortableProgrammer/dev

Merge pull request #10 from PortableProgrammer/dev #105

Workflow file for this run

name: Publish Docker Image
on:
push:
branches:
- main
tags:
- v*
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Prepare
id: prepare
run: |
DOCKER_IMAGE=lurker
VERSION=edge
PLATFORMS=linux/amd64,linux/arm64
REPO_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
fi
TAGS="--tag ghcr.io/${REPO_OWNER}/${DOCKER_IMAGE}:${VERSION}"
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}(\.[0-9]{1,3})?$ ]]; then
TAGS="$TAGS --tag ghcr.io/${REPO_OWNER}/${DOCKER_IMAGE}:latest"
fi
echo "docker_image=${DOCKER_IMAGE}" >> "$GITHUB_ENV"
echo "version=${VERSION}" >> "$GITHUB_ENV"
echo "repo_owner=${REPO_OWNER}" >> "$GITHUB_ENV"
echo "buildx_args=--build-arg VERSION=${VERSION} --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') --build-arg VCS_REF=${GITHUB_SHA::8} ${TAGS} --platform ${PLATFORMS} --file ./Dockerfile ./" >> "$GITHUB_ENV"
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Github container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker Build and Push
if: success()
run: |
docker buildx build --output type=image,push=true ${{ env.buildx_args }}
- name: Clear
if: always()
run: |
rm -f ${HOME}/.docker/config.json