【问题标题】:AWS CodeBuild environment variables for versioning?用于版本控制的 AWS CodeBuild 环境变量?
【发布时间】:2017-06-17 01:16:28
【问题描述】:

是否有任何类型的 AWS CodeBuild 环境变量可以帮助在构建工件上标记版本控制信息? .即 Bamboo 的等价物,例如 bamboo_buildNumber。理想情况下,我想要内部版本号和 SCM 号。

文档讨论了供内部使用的 CODEBUILD_x 变量,但我找不到它们的列表。

【问题讨论】:

    标签: amazon-web-services aws-codebuild


    【解决方案1】:

    此处列出了对 CodeBuild 提供的用于消费的环境变量的引用:http://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref.html#build-env-ref-env-vars

    对于内部版本号相关信息,您可以使用 CODEBUILD_BUILD_ID 或 CODEBUILD_BUILD_ARN。对于源相关信息,取决于构建的触发方式和构建的输入参数是什么(例如,如果您在开始构建时指定了源版本 -- reference),您还可以使用 CODEBUILD_SOURCE_VERSION 或 CODEBUILD_SOURCE_REPO_URL 环境变量。

    CodeBuild 文档尚未更新这些已更新环境变量的详细信息。

    谢谢!

    【讨论】:

    • 谢谢!顺便说一句 .. 是否有分支环境变量?竹子相当于bamboo_planRepository_branchName
    • CodeBuild 主要使用 git 提交哈希,但您可以在开始构建时指定分支信息(而不是提交哈希)。在这种特定情况下,CODEBUILD_SOURCE_VERSION 不会解析为提交哈希,而是分支的名称。如果您尝试使用标签而不是提交哈希/分支,则它完全相似。
    【解决方案2】:

    亚马逊最近添加了一个 BuildNumber 环境变量。

    根据https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html

    CODEBUILD_BUILD_NUMBER: The current build number for the project.
    

    【讨论】:

      【解决方案3】:

      有很多环境变量,但根据我的经验,它们不是很可靠,因为它们取决于构建的触发方式。最有用的似乎是:

      echo "Region = ${AWS_REGION}"
      echo "Account Id = $(echo $CODEBUILD_BUILD_ARN | cut -f5 -d ':')"
      echo "Repo Name = $(echo $CODEBUILD_SOURCE_VERSION | cut -f2 -d '/')"
      echo "Commit Id = ${CODEBUILD_RESOLVED_SOURCE_VERSION}"
      

      哪些输出:

      Region = us-west-2
      Account Id = 0123456789
      Repo Name = my-app
      Commit Id = a46218c9160f932f2a91748a449b3f9818964642
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-25
        • 1970-01-01
        • 2020-05-09
        • 2020-09-29
        • 1970-01-01
        • 1970-01-01
        • 2020-05-19
        相关资源
        最近更新 更多