Chris Ayers

CI/CD with Github Actions

A single YAML file can test your code across multiple operating systems and securely deploy to the cloud. Learn how to build powerful pipelines with GitHub Actions.

CI/CD with Github Actions
#1about 2 minutes

Understanding YAML syntax for GitHub Actions workflows

Learn the fundamental YAML rules for lists, key-value pairs, and objects, with a focus on how indentation impacts workflow files.

#2about 1 minute

Defining continuous integration, delivery, and deployment

Distinguish between continuous integration (CI), continuous delivery, and continuous deployment to understand the different levels of automation.

#3about 4 minutes

Exploring the core components of GitHub Actions

Workflows are event-driven processes composed of jobs, which run on runners and execute a series of steps in sequence.

#4about 6 minutes

Analyzing a basic workflow run and its environment

Walk through the execution of a simple workflow and explore the extensive list of pre-installed software available on GitHub-hosted runner images.

#5about 3 minutes

Controlling workflow execution with triggers and dependencies

Fine-tune when workflows run using branch filters, path exclusions, and schedules, and control execution order with job dependencies.

#6about 5 minutes

Using custom scripts and marketplace actions in steps

Execute multi-line scripts using various shells like Bash or Python, and leverage pre-built actions from the GitHub Marketplace by pinning to specific versions.

#7about 10 minutes

Using variables and contexts for dynamic workflows

Define environment variables at different scopes and access dynamic runtime information using context objects like `github`, `runner`, and `vars`.

#8about 3 minutes

Securing workflows with secrets and best practices

Understand how GitHub Actions masks secrets in logs and learn the potential pitfalls of exposing structured or parsed secret data.

#9about 3 minutes

Testing across multiple platforms with matrix strategies

Use a matrix strategy to efficiently run the same job across various combinations of operating systems and software versions, such as Node.js.

#10about 3 minutes

Building a .NET app with caching and artifacts

Optimize build times by caching dependencies and pass build outputs between jobs using upload and download artifact actions.

#11about 4 minutes

Deploying to Azure with IaC and environments

Deploy infrastructure as code using Bicep, pass outputs between steps, and manage deployments with GitHub Environments for approvals and secrets.

#12about 3 minutes

Creating reusable workflows and PR-based environments

Encapsulate common logic into reusable workflows with `workflow_call` and automate the creation of ephemeral environments for pull requests.

#13about 3 minutes

Local testing and advanced security with OIDC

Test workflows locally using `act` to iterate faster, and implement secure, passwordless deployments to cloud providers with OpenID Connect (OIDC).

#14about 16 minutes

Advanced topics on versioning, troubleshooting, and security

Explore practical considerations including artifact versioning, troubleshooting failed builds, securing data, and choosing the right runner image for cost and performance.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.