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 }}