CI/CD with GitHub Actions

Chris Ayers

Chris Ayers

Senior Customer Engineer
Microsoft

Twitter: @Chris_L_Ayers
Mastodon: @Chrisayers@hachyderm.io
LinkedIn: - chris-l-ayers
Blog: https://chris-ayers.com/
GitHub: Codebytes

Agenda

  • YAML
  • CI / CD
  • Actions Overview
  • Demos

YAML

Yet Another Markup Language

GitHub uses YAML for workflows

Demo: Online Parser

Feature Description
Lists Start with a –
Key-Value Key: value
Objects Objects:
Properties of objects

What is CI/CD?

flowchart LR subgraph Continuous Integration direction LR A[Code] --Check In--> B[Build] B --Auto--> C[Unit Tests] C --Auto--> D[Dev Release] D --Auto--> E[Additional Tests] end
flowchart LR subgraph Continuous Delivery direction LR G[Code] --Check In--> H[Build] H --Auto--> I[Unit Tests] I --Auto--> J[Dev Release] J --Auto--> K[Additional Tests] K --Manual--> L[Release] end linkStyle 4 color:red;
flowchart LR subgraph Continuous Deployment direction LR M[Code] --Check In--> N[Build] N --Auto--> O[Unit Tests] O --Auto--> P[Dev Release] P --Auto--> Q[Additional Tests] Q --Auto--> R[Release] end linkStyle 4 color:gree;

Actions Overview

  • Actions are Event Driven
  • Live in the .github/workflows folder
  • Workflows are defined in YAML

Workflows

  • Events trigger workflows
  • Workflows contain jobs
  • Jobs contain steps
  • Steps are commands or actions

Jobs

  • Workflows can contain multiple jobs
  • Each job runs on a Runner

ACT

Run Actions Locally

nektos/act

DEMOS

Questions

Resources

Follow Chris Ayers

Twitter: @Chris_L_Ayers
Mastodon: @Chrisayers@hachyderm.io
LinkedIn: - chris-l-ayers
Blog: https://chris-ayers.com/
GitHub: Codebytes

Needed for mermaid, can be anywhere in file except frontmatter