Actions/Checkout Versions and Tags: Complete Versioning Guide
GitHub's actions/checkout action uses semantic versioning tags following the vX.Y.Z pattern, with major versions like v7, v6, v5, and v4 available alongside specific patch releases such as v6.0.3.
The actions/checkout repository maintains multiple release streams to support diverse CI/CD requirements. Understanding how these actions/checkout versions are structured and referenced ensures your workflows use the correct feature set and security patches. This guide examines the tagging scheme, available releases, and implementation details found in the source code.
Version Tagging Scheme
actions/checkout follows semantic versioning using Git tags that match the pattern vX.Y.Z. Each major version tag (e.g., v7, v6) corresponds to a released major version, where minor and patch releases are baked into the same tag reference.
When you specify a version in your workflow's uses field, the runner checks out the exact commit associated with that tag. This means referencing actions/checkout@v7 pulls the latest v7.x code, while actions/checkout@v6.0.3 pins to that specific patch release.
Available Actions/Checkout Versions
The repository maintains a single source tree that is compiled to JavaScript for the current runtime environment. As of version 7, the action runs on Node 24. Major versions currently available include:
v7– The current major release with the latest features and Node 24 runtimev6– Previous stable release with maintenance supportv5– Older version still functional for legacy workflowsv4– Extended support version for older runners
You can view all available release tags on the GitHub Tags page. Version-specific changes are documented in CHANGELOG.md at the repository root, while README.md summarizes compatibility and migration paths.
How Version Selection Works in the Runner
The version your workflow executes is determined solely by the tag referenced in the uses field. When the workflow runs, GitHub Actions checks out the specific commit associated with that tag, ensuring the behavior matches the code at that point in time.
Key implementation files include:
action.yml– Declares inputs and outputs for the actionsrc/main.ts– Core TypeScript implementation compiled todist/index.jsdist/index.js– Runtime JavaScript consumed by the runnerCHANGELOG.md– Detailed change history for each releaseREADME.md– User documentation listing available versions
Although the source files remain consistent across the repository, the compiled assets in dist/index.js differ between tags, making version selection critical for functionality.
Referencing Different Versions in Workflows
Using the Latest Major Release (v7)
Reference the major version tag to automatically receive the latest patches and bug fixes within that release stream:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
Pinning to a Specific Patch Version
For reproducible builds, specify the exact patch version to ensure consistent behavior across workflow runs:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.3
with:
persist-credentials: false
Using Older Supported Versions
Legacy workflows can continue using older major versions that remain functional:
jobs:
legacy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
lfs: true
Selecting Pre-Release Tags
For testing features before general availability, reference specific pre-release tags directly:
- uses: actions/checkout@v7.0.0-beta
Always prefer official release tags (vX.Y.Z) to avoid pulling in unfinished code.
Summary
- actions/checkout versions use semantic tagging (
vX.Y.Z) where major versions likev7,v6, andv5represent distinct release streams - The repository maintains a single source tree compiled to
dist/index.js, with the runtime environment (currently Node 24 for v7) determined by the tag - Reference major version tags (
@v7) for automatic updates within that stream, or specify exact patches (@v6.0.3) for reproducible builds - Version documentation lives in
CHANGELOG.mdandREADME.md, while the action definition resides inaction.yml
Frequently Asked Questions
What versions of actions/checkout are currently available?
The repository provides major versions v7, v6, v5, and v4, with v7 being the current release running on Node 24. Each major version tag points to the latest patch release within that series, and you can reference specific historical patches by using the full semantic version string like v6.0.3.
How do I pin my workflow to a specific actions/checkout version?
Use the full version string in your workflow file: uses: actions/checkout@v6.0.3. This references the exact Git tag for that patch release, ensuring the runner checks out the specific commit associated with that version rather than the latest in the major version series.
What is the difference between v7 and previous versions of actions/checkout?
Version 7 updated the underlying runtime to Node 24 and includes the latest bug fixes and features. While the core functionality remains similar across versions, each major version may introduce breaking changes or deprecate older Node environments. The CHANGELOG.md file in the repository details specific differences between releases.
Where are version changes and release notes documented?
Version changes are recorded in CHANGELOG.md at the repository root, which details modifications for each major and patch release. The README.md file provides a high-level summary of current and historic versions, while the GitHub Tags page lists all available release points chronologically.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →