Getting Commit ID in CodePipeline

You can use the CODEBUILD_RESOLVED_SOURCE_VERSION environment variable to retrieve the commit hash displayed in CodePipeline at build time.


Adding an answer that explains how to achieve this in CloudFormation, as it took me a while to figure it out. You need to define your stage as:

Name: MyStageName
Actions:
    -
        Name: StageName
        InputArtifacts:
            - Name: InputArtifact
        ActionTypeId:
            Category: Build
            Owner: AWS
            Version: '1'
            Provider: CodeBuild
        OutputArtifacts:
            - Name: OutputArtifact
        Configuration:
            ProjectName: !Ref MyBuildProject
            EnvironmentVariables:
                '[{"name":"COMMIT_ID","value":"#{SourceVariables.CommitId}","type":"PLAINTEXT"}]'

In your actions you need to have this kind of syntax. Note that the EnvironmentVariables property of a CodePipeline stage is different from a AWS::CodeBuild::Project property. If you were to add #{SourceVariables.CommitId} as an env variable there, it wouldn't be resolved properly.