Skip to content
git-commit

GitHub Action

Commit Hash

v3.0.0 Latest version

Commit Hash

git-commit

Commit Hash

Output commit hash (short and long) with optional prefix

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Commit Hash

uses: prompt/[email protected]

Learn more about this action in prompt/actions-commit-hash

Choose a version

Commit Hash

A GitHub Action for using the long and short hash of a commit — with an optional prefix.

prompt/actions-commit-hash@v3

📦 Automatic Release Packaging is used by this action, please reference by tag or commit hash in your Workflows.

Inputs

All inputs are optional.

ID Description Default Examples
commit Full, 40-character SHA-1 hash of the commit ${{github.sha}} 734713bc047d87bf7eac9674765ae793478c50d3
prefix Optional string prepended to short and long commit sha-

Outputs

ID Description Examples
short Short, 7-character hash of the commit with optional prefix 734713b sha-734713b
long Full, 40-character SHA-1 hash of the commit with optional prefix 734713bc047d87bf7eac9674765ae793478c50d3 sha-734713bc047d87bf7eac9674765ae793478c50d3
hash Original, 40-character SHA-1 hash of the commit without prefix 734713bc047d87bf7eac9674765ae793478c50d3

Examples

Build image with commit tag

docker/build-push-action builds Docker images with tags, here we tag the image we're building with the short commit hash.

jobs:
  tag-image:
    runs-on: ubuntu-latest
    steps:
    steps:
      - id: commit
        uses: prompt/actions-commit-hash@v3
      - uses: docker/setup-buildx-action@v3
      - name: Build image for commit
        uses: docker/build-push-action@v5
        with:
          push: true
          tags: ${{ steps.commit.outputs.short }}

Prefix commit hash for workflow_run event

workflow_run events are handled by Workflows within the context of the main branch, therefore the github.sha context value does not represent the commit that triggered the Workflow and we must use the head_sha value on the event instead.

on:
  workflow_run:
    workflows:
      - Build
    types:
      - completed

jobs:
  tag-image:
    runs-on: ubuntu-latest
    steps:
    steps:
      - id: commit
        uses: prompt/actions-commit-hash@v3
        with:
          commit: "${{ github.event.workflow_run.head_sha }}"
          prefix: "sha-"
      - uses: docker/setup-buildx-action@v3
      - name: Build image for commit
        uses: docker/build-push-action@v5
        with:
          push: true
          tags: ${{ steps.commit.outputs.short }}

Automatic Release Packaging

Packaging (creation of dist) happens automatically when a new tag is created. Any reference to this Action in a Workflow must use a tag (mutable) or the commit hash of a tag (immutable).

✅ uses: prompt/actions-commit-hash@v3
✅ uses: prompt/[email protected]
✅ uses: prompt/actions-commit-hash@01d19a83c242e1851c9aa6cf9625092ecd095d09
❌ uses: prompt/actions-commit-hash@main

The blog post Package GitHub Actions automatically with GitHub Actions describes how this is achieved.