1

我正在尝试以YYYY.MM.DD.BuildId用于版本控制二进制文件的格式设置环境变量,但我似乎无法弄清楚如何做到这一点。我需要从 buildspec.yml 文件中获得它以在编译器命令中引用。看起来它不应该这么困难,但我似乎无法用任何类型的动态逻辑更新环境变量。

我在 yaml 文件中尝试了这个主题的变体:

env:
  variables:
     BUILD_VERSION: "$(date +%Y.%m.%d).$(CODEBUILD_BUILD_NUMBER)"

...但它始终将构建版本视为文字值。没有替换发生。

我不可能是唯一一个试图做这种事情的人。我怎样才能使这项工作?这在 Azure Devops 中非常简单,在 Jenkins 中也是微不足道的,所以令人惊讶的是我在这方面做了多久。

4

1 回答 1

1

我发现在构建步骤中,我可以使用命令 shell 为我的编译器设置我想要的值。例如:

  build:
    commands:
      - export BUILD_VERSION=$(date +%Y.%m.%d).$CODEBUILD_BUILD_NUMBER
      - echo Building version [$BUILD_VERSION]...
      - dotnet publish My.Project/My.Project.csproj --configuration Release --framework netcoreapp3.1 --output ./application --self-contained --runtime ubuntu.18.04-x64 /p:AssemblyVersion=$BUILD_VERSION /p:AssemblyFileVersion=$BUILD_VERSION /p:FileVersion=$BUILD_VERSION

这使我的二进制文件可以使用正确的文件和构建版本构建。

于 2021-04-14T22:49:28.157 回答