A minimal delivery flow
commit -> build -> test -> package -> deploy staging -> verify -> promote- Each stage produces evidence or an artifact.
- A failure should stop unsafe downstream work rather than being hidden.
Understand continuous integration, continuous delivery and continuous deployment as engineering feedback systems rather than a collection of automation tools.
Continuous integration combines small changes into a shared branch frequently and validates them with automated checks. The objective is fast feedback about whether the change can safely join the shared codebase, not merely running a script after a push.
Continuous delivery keeps a validated change in a releasable state and can retain a human promotion decision. Continuous deployment goes further and automatically releases each qualifying change to production.
A useful pipeline answers concrete questions: can the code build, do tests pass, is the artifact identifiable, and can the release be promoted or rolled back? Faster feedback is valuable only when the checks are trustworthy.
commit -> build -> test -> package -> deploy staging -> verify -> promoteGoal: Create a tiny application plus test script and make the pipeline fail fast when behavior is wrong.
mkdir -p ~/gnu-cicd-labs/module01 && cd ~/gnu-cicd-labs/module01
printf 'const n=Number(process.argv[2]||0); console.log(n*2);\n' > app.jscat > test.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
[ "$(node app.js 4)" = "8" ]
EOF
chmod +x test.shcat > ci.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
node --check app.js
./test.sh
echo 'CI PASS'
EOF
chmod +x ci.sh./ci.shTeams should be able to reproduce the core CI commands locally instead of depending on opaque runner-only behavior.
Open each answer only after you have tried to answer the question yourself.
Integrate changes frequently and get automated feedback about whether they can safely join the shared codebase.
Yes. It keeps software releasable while promotion can remain a controlled decision.
To stop downstream work when an earlier prerequisite or quality gate has already failed.
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.