The project's finished pipeline, played one event at a time. A push to a topic branch runs the branch workflow: quick tests, for the developer; it blocks nothing. A pull request runs the gate: every check, on a trial merge, then the review; a new commit runs the checks again. A merge is a push to main, and runs the …
Read MoreIn this project you build a delivery pipeline for a small web API: a CRUD API in Python, in its own GitHub repository; a GitHub Actions pipeline: a push to your own branch runs the fast tests; a pull request runs more: integration tests, security and code inspection tools; a pull request waits for an approver before it …
Read MoreNew to workflows? Start with GitHub Actions Workflows: an Introduction. A workflow file has three levels, one inside the other: the workflow its jobs each job's steps Every key belongs to one or more of these levels, and a key in the wrong level is an error. The workflows of a repository A repository holds any number …
Read MoreIn this task you create the repository and the app the pipeline will deliver. Create the repository On GitHub, a new public repository: <you>/devops-project. It is your portfolio: a potential employer can read the code, the pipeline and every run. Task 3 protects main with a branch protection rule, and on GitHub's free …
Read MoreIn this task the deployment gets the parts a real one has. Add environments GitHub environments staging and production, each with its own variables and secrets. TODO: a required reviewer on production, or the merge approval only. Deploy to staging first TODO: a second namespace, or a second set of instances. Production …
Read MoreIn this task you remove what costs money and what holds a credential. Remove the AWS resources TODO: terraform destroy, per track; check the load balancers are gone. Remove the credentials The Docker Hub token, the repository's secrets, the IAM role and the OIDC provider. Remove the app installation Uninstall …
Read MoreIn this task you create three files in .github/workflows/, one workflow per event: File Runs on Its part branch.yml a push to a topic branch the developer's own loop: fast feedback while they work; it blocks nothing pr.yml a pull request to main, and every new commit on it the gate: its checks and the approval decide …
Read MoreIn this task main stops taking changes directly: a change reaches it only through a pull request that has an approval. The approver is pr-reviewer, a GitHub App written for this site's courses: a stand-in for a senior team member. On a real team, a person reads every pull request, and approves only a change they judge …
Read MoreIn this task the first placeholders become real: the image-build and image-push jobs. The image is built on a GitHub runner, a fresh machine per job, not on your own. Only the merge workflow pushes it to Docker Hub. A pull request builds the image and throws it away; a topic branch builds none. The push needs a Docker …
Read MoreIn this task you create the place the app runs, and let the pipeline reach it. Let GitHub Actions into AWS An OIDC identity provider and a role that only main of your repository may assume: the steps are in Pipeline Identities, Part 4. TODO: Terraform, or the console; and where its state lives. Estimate what the EKS …
Read More