Skip to content

Publish Docker image #203

Publish Docker image

Publish Docker image #203

name: Publish Docker image
on:
push:
pull_request:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
publish-docker-image:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Prepare Docker image build metadata
run: |
DOCKER_IMAGE_TAG=$(curl -fsSL https://hub.docker.com/v2/repositories/library/archlinux/tags | jq -r '.results[].name | select(startswith("base-20"))' | head -1)
DOCKER_IMAGE_BUILD_ARG_BASE_IMAGE=archlinux:${DOCKER_IMAGE_TAG}
echo "DOCKER_IMAGE_TAG=${DOCKER_IMAGE_TAG}" >> ${GITHUB_ENV}
echo "DOCKER_IMAGE_BUILD_ARG_BASE_IMAGE=${DOCKER_IMAGE_BUILD_ARG_BASE_IMAGE}" >> ${GITHUB_ENV}
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{github.token}}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
build-args: BASE_IMAGE=${{env.DOCKER_IMAGE_BUILD_ARG_BASE_IMAGE}}
push: ${{github.event_name != 'pull_request'}}
tags: |
ghcr.io/${{github.repository_owner}}/systemd-archlinux:${{env.DOCKER_IMAGE_TAG}}
ghcr.io/${{github.repository_owner}}/systemd-archlinux:latest