构建步骤中的代码构建设置环境变量

问题描述 投票:0回答:2

我正在使用codebuild来构建现有项目,并希望将版本号添加到工件zip名称中。内部版本号在源代码中可用,但是我需要一种方法将其公开给Artifacts代码构建步骤。

我的buildspec.yaml的压缩版本:

env:
  exported-variables:
    - BUILD_VERSION
phases:
  build:
    commands:
      - setx BUILD_VERSION (Get-Content -Path .\Version.txt) /M
artifacts:
  base-directory: bin\Release\Publish\
  files:
    - .\**\*
  name: myapp-$BUILD_VERSION-$(Get-Date -UFormat "%Y%m%d%H%M%S").zip 

当前,此输出为“ mpapp--.zip”,是否可以将BUILD_VERSION环境变量设置为文件中的值?

amazon-web-services aws-codebuild
2个回答
0
投票

如果我正确理解问题,则可以编写bash脚本以1)在代码库文件中找到所需的值,然后2)将值回显到buildspec文件变量

例如

在buildspec.yml中:

- TEST_VALUE=$(sh ExportTest.bash) 
- echo $TEST_VALUE

ExportTest.bash:

#!/bin/bash
ECHO_VALUE='Your Build Version Value Acquired From Code Base File'
echo $ECHO_VALUE

结果(来自CodeBuild输出):

[Container] 2020/02/28 15:28:09 Running command echo $TEST_VALUE
Your Build Version Value Acquired From Code Base File

您的特定代码可能会因您的容器/图像而异。我正在使用

mcr.microsoft.com/dotnet/core/sdk:3.1

在Linux环境中的图像,您的bash脚本肯定会更强大。

HTH


0
投票

您可以使用两个选项来解决此问题:1)使用CodeBuild提供的内部版本号env var:CODEBUILD_BUILD_NUMBER2)使用'set'修改变量而不是'setx',以使更改在当前上下文中显示效果。

© www.soinside.com 2019 - 2024. All rights reserved.