# Actions/Checkout Versions and Tags: Complete Versioning Guide

> Explore the comprehensive versioning guide for actions/checkout. Discover available semantic versioning tags like v7, v6, v5, and specific patch releases such as v6.0.3 for efficient project management.

- Repository: [GitHub Actions/checkout](https://github.com/actions/checkout)
- Tags: api-reference
- Published: 2026-07-03

---

**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 runtime
- **`v6`** – Previous stable release with maintenance support
- **`v5`** – Older version still functional for legacy workflows
- **`v4`** – Extended support version for older runners

You can view all available release tags on the [GitHub Tags page](https://github.com/actions/checkout/tags). Version-specific changes are documented in [`CHANGELOG.md`](https://github.com/actions/checkout/blob/main/CHANGELOG.md) at the repository root, while [`README.md`](https://github.com/actions/checkout/blob/main/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`](https://github.com/actions/checkout/blob/main/action.yml)** – Declares inputs and outputs for the action
- **[`src/main.ts`](https://github.com/actions/checkout/blob/main/src/main.ts)** – Core TypeScript implementation compiled to [`dist/index.js`](https://github.com/actions/checkout/blob/main/dist/index.js)
- **[`dist/index.js`](https://github.com/actions/checkout/blob/main/dist/index.js)** – Runtime JavaScript consumed by the runner
- **[`CHANGELOG.md`](https://github.com/actions/checkout/blob/main/CHANGELOG.md)** – Detailed change history for each release
- **[`README.md`](https://github.com/actions/checkout/blob/main/README.md)** – User documentation listing available versions

Although the source files remain consistent across the repository, the compiled assets in [`dist/index.js`](https://github.com/actions/checkout/blob/main/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:

```yaml
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:

```yaml
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:

```yaml
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:

```yaml
- 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 like `v7`, `v6`, and `v5` represent distinct release streams
- The repository maintains a single source tree compiled to [`dist/index.js`](https://github.com/actions/checkout/blob/main/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.md`](https://github.com/actions/checkout/blob/main/CHANGELOG.md) and [`README.md`](https://github.com/actions/checkout/blob/main/README.md), while the action definition resides in [`action.yml`](https://github.com/actions/checkout/blob/main/action.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`](https://github.com/actions/checkout/blob/main/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`](https://github.com/actions/checkout/blob/main/CHANGELOG.md) at the repository root, which details modifications for each major and patch release. The [`README.md`](https://github.com/actions/checkout/blob/main/README.md) file provides a high-level summary of current and historic versions, while the GitHub Tags page lists all available release points chronologically.