Welcome to The Complete Guide for GitHub actions and workflows where you will learn everything that
you need to know about GitHub's
new CI service.
My name is Ali.
And I will be instructing you throughout this course.
I've been working as a front-end web developer for years and during these years I have used multiple
CI services to test and deploy mobile and web applications.
Recently I've been using GitHub's CI service known as GitHub Actions. GitHub Actions has some advantages
over other CI services I have used. First it's natively integrated with your GitHub repositories and
in addition to that and thanks to GitHub's popularity you would easily find a large amount of resources
like pre-made workflows and actions which are reusable pieces of code that you can use in your workflows
to perform tasks like deploying code, interacting with API's, sending sms's and so on. At the end
of this course you should be able to write CI/CD workflows to automate tasks like testing, building, deploying
your code and more.
You will also be able to write your own actions and publish them and the actions marketplace.
So let's briefly see how this course is structured.
In Section 1 we will have a quick conceptual introduction to what workflows, actions, jobs, steps and other
terms that we will see are. And we will also learn about the YAML format which is used to write workflows
in Github.
Then we will start writing our first workflow and we will take a look at the basic things that we can do in a workflow.
In Section 2 we will get a bit deeper and learn about the 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 run only for certain branches, tags or paths. In Section 3
we will see how can we use default and custom environment variables.
We will also see how to encrypt environment variables that hold sensitive information and also how to
encrypt and decrypt sensitive files that we do not want to push to our repository.
We will also take a look at the context information that we can access in our workflows.
And finally we will take a look at different functions that are available to use in our workflows.
In section 4 we will see how can we set up matrices and a matrix is a way to run a job multiple times
but under 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.
So this section might require some basic Docker knowledge.
In Section 5 we will finally use our knowledge that we learned in the previous sections to create a real world
CI/CD example. We will set up our repository to have different branches for development and production
and to be based on submitting pull requests and then we will write different workflows for pushing into
different branches. And also workflows for when somebody opens a pull request. The tasks that we will perform
in our workflow includes: installing and caching dependencies, testing the code, checking code format, uploading
artifacts, automatically generating a semantic version, deploying to a production or a staging server,
creating releases, opening issues, sending slack notifications and more. During the course we will use
some actions that are available in the marketplace but in this last section we will learn how to create
our own actions which can be created using either JavaScript or using Docker. In this section we are
going to learn both ways for writing actions and then we will create a javascript action that opens
GitHub issues. And then using Docker we can write actions in any language we like, so we will create a
Docker action that sends a slack message and we will write it using PHP. In order to be comfortable while
watching this course you will have to have some basic GitHub knowledge. Some lectures will also require
some basic Docker knowledge.
However they are not necessary to create workflows and actions and you can skip them if you like.
And finally creating actions will require either JavaScript or Docker knowledge.
So if you are interested in creating actions you will have to have some knowledge in one of them.
So make sure to check the course description and also the free preview videos and I look forward to
seeing you inside.