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
Every workflow lives in .github/workflows/<name>.yml
(or .yaml
) and is expressed as YAML. At minimum you give the workflow a human readable
name
, choose an event in the on:
block, and describe one or more jobs. A job represents a unit of work that runs on a single
runner.
name: Hello World
on:
workflow_dispatch:
jobs:
say-hello-inline-bash:
runs-on: ubuntu-24.04
steps:
- run: echo "Hello from an inline bash script in a GitHub Action Workflow!"
workflow_dispatch
lets you trigger the workflow manually from the GitHub UI.runs-on
selects the runner image. GitHub-hosted runners such as ubuntu-24.04
, windows-latest
, and macos-latest
are the
easiest way to get started.steps
run sequentially inside the same environment. Each step either executes a shell command (run
) or reuses an
existing action (uses
).Steps can run inline shell, switch shells, or call reusable actions from the marketplace. The
03-core-features--02-step-types.yaml
workflow showcases the three most common patterns:
jobs:
say-hello-inline-bash:
runs-on: ubuntu-24.04
steps:
- run: echo "Hello from an inline bash script in a GitHub Action Workflow!"
say-hello-inline-python:
runs-on: ubuntu-24.04
steps:
- run: print("Hello from an inline python script in a GitHub Action Workflow!")
shell: python
say-hello-action:
runs-on: ubuntu-24.04
steps:
- uses: actions/hello-world-javascript-action@081a6d193d1dcb38460df1e6927486d748730f9d # v1.1
with:
who-to-greet: "from an action in the GitHub Action marketplace! 👋"
Key takeaways:
shell:
key (bash
, python
, pwsh
, etc.).@v1
) for reproducibility and supply any required
inputs with the with:
block.