We may earn an affiliate commission when you visit our partners.
Course image
Ali Alaa

GitHub recently released "GitHub Actions" , a CI service competitor to services like TravisCI and CircleCI. GitHub Actions however has the edge of being natively integrated with your GitHub repository. In addition to that, thanks to GitHub's popularity; GitHub Actions has the advantage of having large ecosystem and community. Using GitHub Actions you will find a lot of official and community pre-made workflows and also the actions marketplace. In the actions marketplace you can find tons of actions which are reusable pieces of code that you can use in your workflows to perform certain tasks like deploying code, interacting with API's, sending SMS's, etc...

Read more

GitHub recently released "GitHub Actions" , a CI service competitor to services like TravisCI and CircleCI. GitHub Actions however has the edge of being natively integrated with your GitHub repository. In addition to that, thanks to GitHub's popularity; GitHub Actions has the advantage of having large ecosystem and community. Using GitHub Actions you will find a lot of official and community pre-made workflows and also the actions marketplace. In the actions marketplace you can find tons of actions which are reusable pieces of code that you can use in your workflows to perform certain tasks like deploying code, interacting with API's, sending SMS's, etc...

Learn everything you need to know in order to create GitHub workflows & Actions.

In this course we will comprehensively explore GitHub's CI service. We will learn what GitHub workflows & actions are. And we will discover everything we can do in a GitHub workflow including how to run commands, use actions, trigger workflows, build matrices, filter by branch and more. Then we will use what we learned to create a real-world example of a CI/CD workflow where we will test, build, deploy our code and more. And finally we will learn how to write custom actions and publish them on the marketplace so that other people can use it.

Let's take a look at what will be discussed in each section in more detail:

Section 1

In section 1 we will have a quick conceptual introduction to what workflows, actions, jobs, steps and other terms that we will see are. We will also learn about YAML which is the format used to write workflows in GitHub. Then we will start writing our workflow and take a look at basic things like writing commands, using different shells and using actions including the most common action which is the checkout action.

Section 2

In section 2 we will get a bit deeper and learn different ways that we can use in order to trigger a workflow to run. This includes GitHub events like push and pull_request, cron schedules and also external events. We will also see how to make a workflow only run for certain branches, tags and directory paths.

Section 3

In this section we will see how can we use default environment variables and also how to add custom environment variables. We will also see how to encrypt environment variables that are sensitive and also how to encrypt and decrypt sensitive files that we don't won't to push to our repository. Moreover, we will see the GITHUB_TOKEN environment variable and how to use it for authentication. Also we will take a look at the context information that we can access in our workflows which contains a lot of information about our current workflow and virtual machine and more. Finally we will take a look at different functions that are available to use in our workflows.

Section 4

In section 4 we will see how can we setup matrices, a matrix is a way to run a job multiple times but using different environments. We will also learn how to use docker in our jobs and steps and how to run multiple docker services in our job.

Section 5

In section 5 we will finally use our knowledge to create a more real-world CI/CD example. We will set-up a repository where we have a web app and we need to have a flow for production and development deployment. So we will have 2 branches, 1 for production and another for development and we will write a workflow for each one of these branches to do certain things. These things will differ depending whether we are pushing on production or development branch. We will also have a workflow that will run if someone opened a pull request. The tasks we will perform includes: installing dependencies, caching, testing, checking code format, uploading artifacts, automatically generating a semantic version, deploying to production/staging, creating releases, opening issues, sending slack notifications and more.

Section 6

During the course we will use some actions that are available in the marketplace. In this section we will learn how to create our own actions. Actions can be created using JavaScript or using Docker. In this section we are going to learn about both ways and then we will create a JavaScript action that opens GitHub issues and a docker action that send a slack message which we will write using PHP.

Enroll now

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by Ali Alaa, who are recognized for their work in the CI/CD field
Develops skills, knowledge, and tools that are highly relevant in an academic setting
Uses a multi-modal approach that includes videos, readings, and discussions
Course content includes real-world example of a CI/CD workflow
Covers unique aspects of CI/CD, such as setting up matrices and using Docker

Save this course

Save The Complete GitHub Actions & Workflows Guide to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Complete GitHub Actions & Workflows Guide with these activities:
Follow tutorials on GitHub Actions
Following tutorials will provide you with step-by-step guidance to learn and experiment with GitHub Actions.
Browse courses on Github Actions
Show steps
  • Search for tutorials on GitHub Actions from official documentation or reputable sources.
  • Choose a tutorial that aligns with your learning objectives.
  • Follow the instructions provided in the tutorial to set up and configure GitHub Actions in your projects.
Join a study group or online community for GitHub Actions
Joining a study group or online community will provide you with the opportunity to connect with other learners and discuss GitHub Actions.
Browse courses on Github Actions
Show steps
  • Search for online forums or communities dedicated to GitHub Actions.
  • Join a study group or discussion thread and introduce yourself.
  • Participate in discussions, ask questions, and share your experiences with GitHub Actions.
Review Continuous Integration
Review a book on continuous integration to understand the concepts behind building, testing, and deploying software continuously.
Show steps
  • Read the book's introduction and first chapter to gain an overview of the concepts discussed.
  • Go through each of the chapters and make notes on the key points.
  • Summarize the key concepts and principles of continuous integration in your own words.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Practice using different GitHub Actions commands
Practicing different GitHub Actions commands will help you master the syntax and usage of the tool.
Browse courses on Github Actions
Show steps
  • Find a tutorial or reference guide for GitHub Actions commands.
  • Go through the list of commands and try using them in your own workflows.
  • Experiment with different combinations of commands to see how they work together.
Create a GitHub Actions Workflow
Creating a GitHub Actions workflow will help you practice setting up and configuring CI/CD pipelines.
Browse courses on Github Actions
Show steps
  • Choose a project to automate.
  • Create a GitHub repository for the project.
  • Write a workflow file to define the automated tasks.
  • Configure the workflow to run on specific events or triggers.
  • Test the workflow by pushing changes to the repository.
Write a blog post about GitHub Actions
Writing a blog post will help you solidify your understanding of GitHub Actions and share your knowledge with others.
Browse courses on Github Actions
Show steps
  • Plan the structure and outline of your blog post.
  • Write the content, covering the key concepts and benefits of GitHub Actions.
  • Include code examples and screenshots to illustrate your points.
  • Proofread and edit your blog post to ensure clarity and accuracy.
  • Publish your blog post on a platform of your choice.
Contribute to open-source projects using GitHub Actions
Contributing to open-source projects using GitHub Actions will allow you to apply your skills and collaborate with others in a real-world setting.
Browse courses on Github Actions
Show steps
  • Identify open-source projects that use GitHub Actions.
  • Find issues or feature requests that you can contribute to.
  • Fork the repository and create a branch for your changes.
  • Implement the necessary changes and configure GitHub Actions in your branch.
  • Submit a pull request to the original repository.
Mentor junior developers on GitHub Actions
Mentoring others on GitHub Actions will reinforce your understanding of the tool and help others learn.
Browse courses on Github Actions
Show steps
  • Identify junior developers or students who are interested in learning GitHub Actions.
  • Schedule regular sessions to provide guidance and support.
  • Create and share resources or tutorials to facilitate their learning.

Career center

Learners who complete The Complete GitHub Actions & Workflows Guide will develop knowledge and skills that may be useful to these careers:
CI/CD Engineer
CI/CD Engineers are responsible for overseeing the continuous integration and continuous deployment (CI/CD) process, which automates the software delivery pipeline. This course can help prepare you for this role by teaching you how to use GitHub Actions to create workflows and actions that can automate various tasks in the CI/CD process. This course will provide you with the skills needed to configure and manage CI/CD pipelines, as well as the ability to troubleshoot and resolve issues that may arise during the software delivery process.
Software Engineer
Software Engineers are responsible for designing, developing, and maintaining software applications. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the software development process, such as testing, building, and deploying code. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will be highly valuable to employers. Additionally, the certification associated with this course can help you stand out in the job market.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams, and for ensuring that software is delivered quickly and efficiently. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the software development process, such as testing, building, and deploying code. The skills you will learn in this course will be highly valuable to employers, especially those with experience in software development, and will give you the knowledge needed to manage modern DevOps toolchains.
IT Manager
IT Managers are responsible for planning, organizing, and directing the activities of an organization's IT department. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the IT environment, such as managing user accounts, deploying software updates, and monitoring system performance. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your IT operations and give you a competitive edge in the job market.
Systems Administrator
Systems Administrators are responsible for managing and maintaining computer systems and networks. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the system administration process, such as installing software updates, backing up data, and monitoring system performance. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your system administration tasks and give you a competitive edge in the job market.
Cloud Engineer
Cloud Engineers are responsible for designing, building, and managing cloud computing systems. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the cloud computing process, such as provisioning resources, deploying applications, and monitoring system performance. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your cloud computing operations and give you a competitive edge in the job market.
Data Engineer
Data Engineers are responsible for designing, building, and managing data pipelines. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the data engineering process, such as extracting data from various sources, transforming data into a usable format, and loading data into a data warehouse. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your data engineering operations and give you a competitive edge in the job market.
Machine Learning Engineer
Machine Learning Engineers are responsible for designing, building, and deploying machine learning models. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the machine learning process, such as training models, evaluating models, and deploying models to production. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your machine learning operations and give you a competitive edge in the job market.
Technical Project Manager
Technical Project Managers are responsible for planning, organizing, and managing technical projects. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the project management process, such as creating project plans, tracking project progress, and managing project risks. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your project management operations and give you a competitive edge in the job market.
Business Analyst
Business Analysts are responsible for analyzing business processes and identifying opportunities for improvement. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the business analysis process, such as gathering data, analyzing data, and developing recommendations for improvement. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your business analysis operations and give you a competitive edge in the job market.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for testing software applications to ensure that they meet quality standards. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the quality assurance process, such as running tests, analyzing results, and reporting defects. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your quality assurance operations and give you a competitive edge in the job market.
Software Tester
Software Testers are responsible for testing software applications to ensure that they meet quality standards. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the software testing process, such as running tests, analyzing results, and reporting defects. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your software testing operations and give you a competitive edge in the job market.
Automation Engineer
Automation Engineers are responsible for designing, building, and maintaining automated systems. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the automation process, such as creating automated scripts, deploying automated systems, and monitoring automated systems. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your automation operations and give you a competitive edge in the job market.
DevSecOps Engineer
DevSecOps Engineers are responsible for integrating security into the software development process. This course can help you prepare for this role by teaching you how to use GitHub Actions to automate tasks in the DevSecOps process, such as running security scans, analyzing security results, and implementing security controls. The skills you will learn in this course, such as setting up CI/CD pipelines using GitHub Actions, will help you to improve the efficiency of your DevSecOps operations and give you a competitive edge in the job market.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Complete GitHub Actions & Workflows Guide.
Provides a practical guide to implementing DevOps practices in organizations. It covers the cultural, organizational, and technical challenges involved in adopting DevOps, and provides case studies and best practices from leading companies.
Provides a comprehensive guide to using GitHub Actions to implement continuous delivery. It covers topics such as setting up your first pipeline, using different actions, and troubleshooting.
Provides a comprehensive guide to using GitHub Actions in an enterprise environment. It covers topics such as setting up your first workflow, using different actions, and troubleshooting.
Provides a practical guide to writing clean code. It covers the principles, practices, and tools involved in writing code that is easy to read, maintain, and debug.
Provides a comprehensive overview of agile software development. It covers the principles, patterns, and practices involved in developing software using agile methods.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to The Complete GitHub Actions & Workflows Guide.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser