Evidence chain
source-id -> tests PASS -> artifact + sha256 -> staging health PASS -> production -> release record- Every arrow should be explainable after the fact.
- The same artifact identity is retained through staging and production.
Combine source identity, quality gates, immutable artifacts, staging verification, controlled promotion and rollback into one auditable delivery flow.
The source identifier, test result, artifact checksum and deployed release identity should agree. Each stage consumes the output of the previous stage rather than silently recreating it.
The staging artifact is the production candidate. Promotion copies or references the same artifact identity after validation.
A production pipeline is incomplete if it can deploy forward but cannot identify and restore a known-good previous version.
source-id -> tests PASS -> artifact + sha256 -> staging health PASS -> production -> release recordGoal: Build one immutable artifact, validate it in staging, promote it to production and exercise rollback.
mkdir -p ~/gnu-cicd-labs/module12/{src,artifacts,staging,production,releases} && cd ~/gnu-cicd-labs/module12
printf 'status=healthy\nmessage=GNU-CICD\n' > src/app.conf
grep -q 'status=healthy' src/app.confSOURCE_ID=$(sha256sum src/app.conf | awk '{print $1}')
printf '%s\n' "$SOURCE_ID" > source.id
tar -czf artifacts/app-${SOURCE_ID:0:12}.tgz src source.id
sha256sum artifacts/app-*.tgz > artifacts/SHA256SUMS(cd artifacts && sha256sum -c SHA256SUMS)
cp artifacts/app-*.tgz staging/
tar -xzf staging/app-*.tgz -C staging
grep -q 'status=healthy' staging/src/app.confARTIFACT=$(basename artifacts/app-*.tgz)
cp "artifacts/$ARTIFACT" production/
printf '%s\n' "$ARTIFACT" > production/release.txt
cp production/release.txt releases/last-known-good.txtprintf 'app-bad.tgz\n' > production/release.txt
cp releases/last-known-good.txt production/release.txt
cmp production/release.txt releases/last-known-good.txtThe capstone mirrors the core control flow behind a production GitHub Actions pipeline while remaining locally testable and credential-free.
Open each answer only after you have tried to answer the question yourself.
The immutable artifact identity/bytes.
The previous known-good immutable release identity.
It validates CI/CD mechanics locally; hosted-service authentication can be practiced separately without putting secrets into training scripts.
Progress is saved in this browser immediately. When you sign in to My Learning, it can also sync across devices.
Attempt the core lab and knowledge checks before marking the module complete.