Comparison of GitHub Actions with competitors
Deep dive into workflow syntax, triggers, and job configuration
Explore matrices, reusable workflows, and composite actions
•Runner Types and Execution Environments
•Persisting Build Outputs with Artifacts
•Controlling GitHub Permissions
•Authenticating to Third-Party Systems
•Matrix Strategies, Conditionals, and Concurrency Controls
Discover and integrate community actions from the GitHub Marketplace
Build custom JavaScript and Docker actions from scratch
•JavaScript and TypeScript Actions
Optimize logs, secrets, environments, and permissions for teams
•Developer Experience (Actions)
Harden workflows with security, reliability, and cost-saving techniques
•Maintainable Workflow Patterns
Apply course concepts by automating a real-world deployment pipeline
To improve the Developer Experience when working with GitHub actions we will focus on practices that:
@github/local-action
When behavior depends on the GitHub Actions runtime, use the @github/local-action
CLI.
This gives you quick, reproducible runs without pushing branches or waiting for hosted runners.
The npm local-action
script for the TypeScript action in module 6 uses this:
"scripts": {
"local-action": "npx @github/local-action . src/main.ts .env",
},
The .env
file enables settig the desired configuration and passing inputs. Inputs must be set using all caps snake case:
# inputs.milliseconds is set using:
INPUT_MILLISECONDS=2400
Treat actions like any other codebase: add unit tests and run them locally.
The npm test
script for the TypeScript action in module 6 executes its Jest test suite with the node flags required by GitHub's TypeScript starter template:
"scripts": {
"test": "NODE_OPTIONS=--experimental-vm-modules NODE_NO_WARNINGS=1 npx jest",
},
Tests are the fastest way to assert success paths and guard against regressions without involving GitHub runners.