Files
forgefirm/.github/workflows/yocto-cold-build.yml
T
ScottW514 533ae7e46d Move the build, release, and acceptance docs to the documentation site
The documentation site, docs.forgefirm.org, is the one home for the
developer documentation. BUILD.md, kas/README.md, and docs/ACCEPTANCE.md
are on the site under Developers, and they are deleted here. Every
reference points at the site: README.md, BRINGUP.md, UPDATE-SYSTEM.md,
the kas configuration comments, release.sh, the CI workflow comments, and
the releases, forgetest, and bench READMEs.

BRINGUP.md: "Next work" item 16, step timing under CPU contention, is
closed; the video work resolved it. The items after it are renumbered.
CAMPAIGN-LOG.md records the closure.

Documentation and comments only. No layer content changes, so the
manifest identity of the next image does not change. No catalog
consequence.
2026-08-26 10:00:42 -04:00

72 lines
2.6 KiB
YAML

# Cold-build reproducibility probe: proves a fresh clone still builds the
# release image, and publishes the artifact checksums for comparison
# against locally built releases. Dispatch-only - releases are built and
# signed on the maintainer's build host (see docs/UPDATE-SYSTEM.md); this
# workflow never produces release artifacts.
#
# A cold Yocto build on a 4-core hosted runner takes hours and lives
# close to the 6-hour job cap; a timeout here is a data point, not an
# emergency.
name: yocto-cold-build
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 360
steps:
- name: Reclaim runner disk
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \
/opt/hostedtoolcache/CodeQL /usr/local/.ghcup \
/usr/local/share/boost
df -h /
- name: Checkout forgefirm
uses: actions/checkout@v4
with:
path: forgefirm
# The kas config references meta-openglow as a local sibling
# (the release flow on the documentation site flips it to the
# pinned-remote block at release time). Every source repo the recipes
# build is fetched by pinned SRCREV; no other sibling is needed.
- name: Checkout meta-openglow (sibling)
uses: actions/checkout@v4
with:
repository: ScottW514/meta-openglow
ref: scarthgap
path: meta-openglow
- name: Host dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq gawk wget git diffstat unzip texinfo \
gcc build-essential chrpath socat cpio python3 python3-pip \
python3-pexpect xz-utils debianutils iputils-ping python3-git \
python3-jinja2 zstd liblz4-tool file locales libacl1
sudo locale-gen en_US.UTF-8
pip3 install kas
- name: Build (rm_work, release image only)
working-directory: forgefirm
run: kas build kas/forgefirm-glowforge.yml:kas/ci.yml
- name: Checksums
working-directory: forgefirm
run: |
cd build/tmp/deploy/images/glowforge
sha256sum $(readlink forgefirm-image-glowforge.rootfs.ext4) \
$(readlink forgefirm-image-glowforge.rootfs.wic.gz) \
| tee cold-build-checksums.txt "$GITHUB_STEP_SUMMARY"
- name: Upload checksums
uses: actions/upload-artifact@v4
with:
name: cold-build-checksums
path: forgefirm/build/tmp/deploy/images/glowforge/cold-build-checksums.txt
retention-days: 90