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
Manually tagging services is error-prone, so we hand that job to
googleapis/release-please-action
. The
configuration lives under .github/utils/
:
release-please-config.json
enumerates each package path, component name, and release type (Node, Go, Python). The
linked-versions
plugin keeps the Go API and its migrator in sync.release-please-manifest.json
tracks the last published version per service.Release Please reads conventional commit messages (feat:
, fix:
, chore:
, revert:
) to determine semantic version
bumps, opens aggregate release PRs, and—once merged—cuts git tags that in turn trigger the build/push and GitOps
workflows. Using a personal access token bypasses GitHub’s “workflows don’t trigger other workflows” limitation.
Two lightweight workflows round out the automation suite:
actions/stale
runs nightly (or on demand), labels items after a period of inactivity,
and closes them a week later if no one responds. Tweaking days-before-stale
/days-before-close
keeps the backlog
manageable.corentinmusard/otel-cicd-action
exports timing data whenever the test or build
workflows finish. Honeycomb dashboards can then visualize duration trends, identify bottlenecks, and alert when jobs
regress.