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 env: # forgejo-runner's DinD sidecar is reachable over TCP on the # `forgejo-runner_default` docker network. The default runner image # for `ubuntu-latest` doesn't propagate the runner's docker_host # config into the job env, so we pin it explicitly here. DOCKER_HOST: tcp://docker-in-docker:2375 steps: - uses: actions/checkout@v4 - name: Install docker CLI run: | apt-get update -qq apt-get install -y --no-install-recommends docker.io - 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