perfect-postcode/.forgejo/workflows/docker-publish.yml
2026-06-28 11:59:44 +01:00

44 lines
1.5 KiB
YAML

name: Build and publish Docker image
on:
push:
branches: [main]
tags: ["v*"]
workflow_dispatch:
jobs:
build-and-push:
runs-on: docker
steps:
# The product-demo videos and their poster JPGs live in Git LFS (see
# .gitattributes). The checkout below needs `lfs: true` to smudge the real
# binaries, but the runner image ships without the git-lfs executable, so
# install it first. Otherwise checkout fails with "Unable to locate
# executable file: git-lfs".
- name: Install Git LFS
run: |
if command -v sudo >/dev/null 2>&1; then SUDO=sudo; else SUDO=; fi
$SUDO apt-get update
$SUDO apt-get install -y --no-install-recommends git-lfs
- name: Checkout
uses: actions/checkout@v4
# Without lfs, checkout writes ~130-byte LFS pointer text files, the
# Docker build copies those stubs into frontend/dist/video/*, and the
# server serves text as video/mp4, so the videos never load in
# production. Smudge the real binaries instead.
with:
lfs: true
- name: Build and publish main image
uses: http://forgejo:3000/andras/ci-actions/docker-publish@main
with:
context: .
token: ${{ secrets.FORGEJO_PACKAGE_TOKEN }}
- name: Build and publish screenshot image
uses: http://forgejo:3000/andras/ci-actions/docker-publish@main
with:
context: ./screenshot
image-suffix: -screenshot
token: ${{ secrets.FORGEJO_PACKAGE_TOKEN }}