TIL: GitHub Actions $/ Self-Reference Syntax
TIL Tuesday: GitHub Actions now supports $/ syntax to reference an action or reusable workflow in the same repository. No hardcoded versions, no ./ path hacks.
jobs:
build:
steps:
- uses: $/.github/actions/build
That uses: value that starts with $/ resolves to the workflow’s own repository at the exact commit that is running. No checkout, no tag pinning. It works everywhere ./ works — steps, composite action steps, nested composition, and reusable workflow calls.
What problem does this solve?
Before $/, referencing an action in your own repo meant either using ./ with a manual checkout, or hardcoding a version tag. Both have problems:
./requires a full checkout step before the action runs- Hardcoding a version means you either drift from the running commit or maintain tags by hand
- Enterprise policies that require commit SHA pinning break with
./references
# Before — hardcoded version that drifts
- uses: ./.github/actions/build@v1
# Before — works but needs a checkout first
- uses: ./.github/actions/build
# After — pins to the running commit automatically
- uses: $/.github/actions/build
With $/, sibling actions and workflows automatically match the ref you are already running. Internal references stay consistent even when callers pin to a full-length commit SHA.
Where does it work?
$/ works everywhere the workspace-relative ./ syntax works:
- Workflow steps
- Composite action steps
- Nested action composition
- Reusable workflow calls
It requires the GitHub Actions runner to be on version 2.336.0 or newer.
FAQ
Is $/ supported on github.com only or on GitHub Enterprise Server too?
As of the August 2026 changelog, $/ is available on github.com. GHE Server availability depends on the release track.
Does $/ work with reusable workflows, not just actions?
Yes. $/ works for reusable workflows exactly the same way — uses: $/.github/workflows/deploy.yml resolves to the workflow in the same repo at the running commit.
Do I need a checkout step?
No. That’s the point. $/ resolves from the repository context, not the filesystem. You can skip the actions/checkout step if the only thing you need is a local action reference.
What runner version do I need?
GitHub Actions runner 2.336.0 or newer. Check your runner version with ./bin/Runner.Listener --version if you run self-hosted.