44 lines
1.5 KiB
YAML
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 }}
|