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 # DOCKER_HOST points the docker CLI at the DinD sidecar. The sidecar's # hostname is DNS-resolvable because forgejo-runner is configured with # `container.network: "forgejo-runner_default"`, which attaches every # job container to the shared network where docker-in-docker lives. # The default `ubuntu-latest` image (catthehacker/ubuntu:act-latest) # already ships the docker CLI. 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