name: Build ISO # Full ISO build is ~15-20 min. Only run on push-to-main and manual # dispatch so feature-branch iteration stays fast. See # memory/project_ci_branching for the rationale. on: push: branches: [main] workflow_dispatch: concurrency: group: build-iso-${{ github.ref }} cancel-in-progress: true jobs: build-iso: runs-on: ubuntu-latest timeout-minutes: 30 # Attach the job container to `forgejo-runner_default` so the # `docker-in-docker` hostname (the DinD sidecar) is DNS-resolvable. # Without this the job runs on its own per-job network and DOCKER_HOST # resolves nowhere. catthehacker/ubuntu:act-latest already ships # docker CLI, so we don't need to apt-install anything. container: image: catthehacker/ubuntu:act-latest options: --network forgejo-runner_default env: DOCKER_HOST: tcp://docker-in-docker:2375 steps: - uses: actions/checkout@v4 - name: Build ISO run: ./iso/build.sh - name: Report ISO hash run: | iso=$(ls iso/out/*.iso | head -1) echo "ISO: $iso" sha256sum "$iso" - name: Upload ISO artifact uses: actions/upload-artifact@v4 with: name: furtka-iso path: iso/out/*.iso retention-days: 14 if-no-files-found: error