Have you ever wanted to use GitHub Actions, but aren't really sure where to start? Then this repo is for you! In the Outline below, you will find a list of exercises to perform that will increase your knowledge of Actions with practical application and real-world examples. Most exercises can be performed alone, but a few build on each-other and say so in the prerequisites for the exercise. You will also learn about GitHub features that tie-in to Actions and see how to use them first-hand.
Don't see an exercise you were hoping to find? Open an issue
on this repo to suggest it.
This work is entirely open source and comes with no support or guarantee, especially as GitHub features change over time.
- An empty (unitialized) GitHub repository that you have admin access to.
- Authentication to GitHub (OAUTH credentials or PAT token)
- Set-Up:
- This repository cloned locally
- Remove the
./github/workflows/ci.yaml
file. - Update the remote to your repository URL from step 1. See instructions for adding a remote.
- How to create a repository on GitHub
- How to clone a GitHub repository
- How to add, commit, and push changes to a GitHub repository
- How to create & publish a branch
Below are exercises to help you in your Actions journey. They build on each other, so walking through incrementally is ideal.
- Basic workflow creation
- Context information & Environment Variables
- Other event workflow creation
- Global environment variables across jobs
- Workflow defaults
- Dependent jobs creation
- Concurrency groups
- Matrix strategy creation
- Manual workflows
- Reusable workflows
- Using public actions
- Dependabot config
- Continuous integration
- Artifacts
- Caching
- Packages & continuous celivery
- Environments & continuous deployment
- Releases & Tags (under construction)
- Creating Your Own Actions (under construction)
./docker_image
contains files pertaining to the Docker image creation in the Continuous Delivery exercise../golang_app
contains all files pertaining to the Golang application we will build in the Continuous Integration exercise../golang_replacments
contains files pertaining to the Golang application modification in several exercises../images
contains any images placed in the exercise Markdown (./md
) files../.gitignore
simply ignores specific files that should not exist in the repository../<##>-<Exercise-Name>.md
are the exercises written in Markdown and can be viewed through the GitHub repository, or opened in a code editor.
- Push:
git push
- Add & commit:
git add <path-to-file>; git commit -m "<your message>"
(replace with file and message) - Publish a branch:
git push --set-upstream origin <branch>
(replace with branch name) - Clone a repository:
git clone <repository-url>
(replace with repository URL) - Checkout to a branch:
git checkout <branch-name>
(replace with branch name)