On September 1, 2022, GitHub Learning Lab will shut down.
Read more on the GitHub blog and check out GitHub Skills for courses backed by GitHub Actions.
See an up-to-date option for this page.

GitHub Actions: Continuous Integration

Learn how to create workflows that enable you to use Continuous Integration (CI) for your projects.

Start free course Join 15567 others!

social preview

GitHub Actions makes it easier than ever to incorporate continuous integration (CI) into your repositories. ​ This course will get you from zero-to-CI by setting up two workflow files to automate the way you work.

What you'll learn

We'll answer common questions like:

  • What is Continuous Integration?
  • How do GitHub Actions and workflows enable CI?
  • What are build artifacts and how are they used?
  • How can a unit testing framework be implemented with GitHub Actions?

And when you're done you'll be able to:

  • Describe the importance of GitHub Actions in Continuous Integration
  • Use and customize a templated workflow
  • Create CI workflows that match a team's needs and behaviors
  • Use a repository's source code and build artifacts across jobs in a workflow
  • Implement a unit testing framework using GitHub Actions
  • Create a workflow that runs tests and produces test reports
  • Set up a matrix build to create build artifacts for multiple target platforms
  • Save and access a repository's build artifacts
  • Choose virtual environments for an application's CI needs

What you'll build

In this course, we'll be walking through CI using GitHub Actions, and creating a Tic Tac Toe game!

deployed app


Before you start, you should be familiar with GitHub. We recommend taking the following two Learning Labs prior to this course:

And a great follow-on course is

Projects used

This course makes use of the following technologies:


Developers, DevOps Engineers, new GitHub users, students, teams

Steps to complete this course 18
  1. Use a templated workflow

    Create a pull request with a templated workflow

  2. Run a templated workflow

    Wait for GitHub to run the templated workflow and report back the results

  3. Add your first test

    Add your first test script for CI to pick up

  4. Read an Actions log

    Tell the bot which test is failing so we can fix it

  5. Fix the test

    Edit the file that's causing the test to fail

  6. Share the workflow with the team

    Merge the pull request containing your first workflow so the entire team can use it

  7. Create a custom GitHub Actions workflow

    Edit the existing workflow with new build targets

  8. Target a Windows environment

    Edit your workflow file to build for Windows environments

  9. Use multiple jobs

    Edit your workflow file to separate build and test jobs

  10. Run multiple jobs

    Wait for the result of multiple jobs in your workflow

  11. Upload a job's build artifacts

    Use the upload action in your workflow file to save a job's build artifacts

  12. Download a job's build artifacts

    Use the download action in your workflow file to access a prior job's build artifacts

  13. Share the improved CI workflow with the team

    Merge the pull request with the improved workflow

  14. Automate the review process

    Add a new workflow file to automate the team's review process

  15. Use an action to automate pull request reviews

    Use the community action in your new workflow

  16. Create an approval job in your new workflow

    In your new workflow file, create a new job that'll use the community action

  17. Automate approvals

    Use the community action to automate part of the review approval process

  18. Use branch protections

    Complete the automated review process by protecting the main branch

GitHub Actions
Continuous Integration
Share this course
Average time to complete

106 minutes


All public courses on Learning Lab are free.

Latest release

Learning Paths that include this course

Users who took this course also took

What is GitHub Learning Lab?

Learn new skills by completing fun, realistic projects in your very own GitHub repository.