Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS AWS Certified Developer - Associate CompTIA Security+
Photoshop Graphic Design Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Personal Transformation Meditation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Data Science
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee

This course includes:

  • 8 hours on-demand video
  • 5 articles
  • Full lifetime access
  • Access on mobile and TV
Development Software Engineering GitHub

The Complete GitHub Actions & Workflows Guide

Automate Code Testing, Deployment & Versioning using CI/CD Workflows. Create & Publish GitHub Actions to the Marketplace
Rating: 4.5 out of 54.5 (310 ratings)
2,097 students
Created by Ali Alaa
Last updated 11/2020
English
English
30-Day Money-Back Guarantee

What you'll learn

  • Learn about writing serialized data in the YAML format
  • Discover conceptually what workflows and GitHub actions are
  • Learn what terms like action, step, job, event, workflow, etc.. mean
  • Discover everything you can do in a github workflow (events, schedules, filtering, environment variables, context, encryption, matrix and more)
  • Learn how docker can be used in a github workflow
  • Create a real-life CI/CD workflow for code testing, formatting, versioning and more
  • Learn how to use semantic versioning to automatically version your code in your workflow
  • Upload code testing coverage reports in your workflows using codecov
  • Use caching in workflows for faster performace
  • Learn about uploading artifacts in workflows
  • Learn about how to create your own custom GitHub Actions using Javascript or Docker
  • Create an action for opening GitHub issues using JavaScript
  • Create an action for sending slack messages using PHP
  • Learn how to publish GitHub actions in the GitHub marketplace.
Curated for the Udemy for Business collection

Course content

6 sections • 62 lectures • 7h 59m total length

  • Course Source Code
    00:10
  • Preview09:36
  • A Brief Introduction to Writing in YAML Format
    10:53
  • Let's Create Our First Workflow
    15:40
  • Using Different Shells for Each Step
    09:25
  • Preview10:23
  • The Checkout Action
    11:42
  • Quick Note!
    00:15

  • Triggering a Workflow with Github Events & Activity Types
    12:56
  • Setting a Schedule to Trigger Workflows
    11:36
  • Test Your Cron Expression Knowledge
    4 questions
  • Preview10:51
  • Filtering Workflows by Branches, Tags & Paths
    09:05
  • Workflows Filtering Quiz!
    7 questions

  • Default & Custom Environment Variables
    10:38
  • Encrypting Environment Variables
    03:29
  • Using the GITHUB_TOKEN Secret for Authentication
    16:41
  • Encrypting & Decrypting Files
    12:40
  • Preview06:14
  • Using Functions in Expressions
    02:31
  • The If key & Job Status Check Functions
    05:43

  • Continue on Error & Timeout Minutes
    03:42
  • Using the setup-node Action
    04:10
  • Creating a Matrix for Running a Job with Different Environments
    06:19
  • Including & Excluding Matrix Configurations
    06:23
  • Using Docker Containers in Jobs
    06:54
  • An Overview of a Simple Dockerized NodeJS API
    06:51
  • Running Multiple Docker Services in our Workflows
    05:17
  • Running Docker Containers in Individual Steps
    10:34
  • Creating our Own Executable File and Running it in our Steps
    04:22
  • Preview05:53

  • Creating a ReactJS Boilerplate Application
    03:45
  • Building & Testing the Application Locally
    07:57
  • Deploying the Application using Surge
    05:03
  • Using Prettier to Check for Code Formatting Rules
    09:35
  • Let's Discuss Our Workflow Plan
    11:15
  • Setting Up Our Repository
    08:14
  • Creating the Develop Pull Requests Workflow
    08:51
  • Creating the Develop Merge Pull Request Workflow
    10:29
  • Caching NPM Dependencies
    10:54
  • Correction
    00:05
  • Uploading Artifacts in Our Workflows
    05:45
  • Preview07:37
  • Installing semantic-release in Our Project
    05:32
  • Running semantic-release in Our Workflow
    05:36
  • Uploading Release Assets
    05:42
  • Deploying to Production when Pushing to Master
    02:32
  • Uploading Code Coverage Reports to Codecov
    04:37
  • Validating Our Commit Messages with Commitlint & Commitizen
    05:25
  • Sending a Slack Message When a New Release is Published
    11:01
  • Opening an Automated Issue when the Workflow Fails
    09:12
  • Preview02:25

  • Preview05:47
  • Creating a Simple JavaScript Action
    11:56
  • Bundling our JavaScript Code into 1 File
    06:02
  • Let's Discover More About the @github/core Package
    06:33
  • Creating a JavaScript Action for Opening Github Issues
    14:01
  • Creating a Simple Docker Action
    16:08
  • Quick Note!
    00:07
  • Preview10:16
  • Running our PHP Script using a Docker Action
    08:48
  • Populating our Inputs and Context Information Using Environment Variables
    11:03
  • Publishing Github Actions into the Marketplace
    15:43
  • Bonus Lecture
    00:14

Requirements

  • You should have basic GitHub knowledge
  • Some lectures will require some basic docker knowledge (it's not necessary if you want to skip it)
  • Creating custom actions requires JavaScript and/or docker knowledge
  • for some sections some stuff must be installed on your machine including: nodejs, npm, docker, composer, php.

Description

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.


Who this course is for:

  • Developers/Software engineers who need to learn everything about GitHub Workflows & Actions.
  • Developers/Software engineers who want to create a CI/CD workflow using GitHub
  • Developers/Software engineers who would like to learn how to create and publish GitHub Actions.

Instructor

Ali Alaa
Front-end Web Developer
Ali Alaa
  • 4.5 Instructor Rating
  • 1,052 Reviews
  • 6,996 Students
  • 3 Courses

Hey there! I am Ali Alaa, a front-end web developer. Years ago I discovered my interest in web development, especially the front-end side. I started exploring the field from HTML/CSS/JS to WordPress theming and JS frameworks. I have been working as a front-end developer for about 7 years. After all these years, I decided to start creating on udemy and share my knowledge with you.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.