Skip to content

Latest commit

 

History

History
72 lines (58 loc) · 4.12 KB

README.md

File metadata and controls

72 lines (58 loc) · 4.12 KB

GitHub Actions Exercises

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.


Exercise Prerequisites

Software Installed

Environment

  1. An empty (unitialized) GitHub repository that you have admin access to.
  2. Authentication to GitHub (OAUTH credentials or PAT token)
  3. Set-Up:
    1. This repository cloned locally
    2. Remove the ./github/workflows/ci.yaml file.
    3. Update the remote to your repository URL from step 1. See instructions for adding a remote.

Knowledge


Outline & Where To Start

Below are exercises to help you in your Actions journey. They build on each other, so walking through incrementally is ideal.

  1. Basic workflow creation
  2. Understanding Context Variables
  3. Other event workflow creation
  4. Global environment variables across jobs
  5. Workflow defaults
  6. Dependent jobs creation
  7. Concurrency groups
  8. Matrix strategy creation
  9. Manual workflows
  10. Reusable workflows
  11. Using public actions
  12. Dependabot config
  13. Continuous integration
  14. Artifacts
  15. Caching
  16. Packages & continuous celivery
  17. Environments & continuous deployment
  18. Releases & Tags (under construction)
  19. Creating Your Own Actions (under construction)

Files In This Repository

  • ./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.

Commands Quick-Reference

  • 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)