首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将package.json版本号附加到aws-codebuild中的构建工件中。

将package.json版本号附加到aws-codebuild中的构建工件中。
EN

Stack Overflow用户
提问于 2022-02-14 14:41:04
回答 1查看 373关注 0票数 1

我真的不知道这是一个简单的(必须是),共同或复杂的任务。

我在代码构建项目中有一个buildspec.yml文件,我正在尝试将用package.json文件编写的版本附加到输出工件中。

我已经看过很多教程,教我如何附加日期(对我来说不是很有用),还有一些教程告诉我要用这个echo $执行version.sh文件(sed -nr‘s/^s*“version”:"(0-9{1,}.0-9{1,}.*)",$/\1/p’package.json)。

并将其设置为变量(它不工作)。我最后得到了一个名为"my-project-$(version.sh)“的构建文件夹。

代码构建环境使用ubuntu和nodejs

更新(已解决):

我的version.sh文件:

代码语言:javascript
复制
    #!/usr/bin/env bash
    echo $(sed -nr 's/^\s*\"version": "([0-9]{1,}\.[0-9]{1,}.*)",$/\1/p' package.json)

然后,我发现了两件事:

  • 允许访问您的version.sh文件: git更新索引添加-chmod=+x version.sh
  • 在buildspec中的任何阶段声明变量,在构建阶段中声明变量(只是为了确保存储库已经在环境中被复制)。 TAGG=$($CODEBUILD_SRC_DIR/version.sh)

然后在工件版本化名称中引用它:

代码语言:javascript
复制
   artifacts:
     files:
       - '**/*'
     name: workover-frontend-$TAG   

因此,我的构建工件名称: myproject-1.0.0

EN

回答 1

Stack Overflow用户

发布于 2022-07-25 09:48:32

在我的例子中,这个脚本不想从package.json获取数据。在我的本地机器上,它工作得很好,但是在AWS上却没有。我不得不以不同的方式使用chmod,因为我收到消息说我没有正确的权限。我的建筑规范:

代码语言:javascript
复制
version: 0.2
env:
  variables:
    latestTag: ""
phases:
  pre_build:
    commands:
    - "echo sed version"
    - sed --version
  build:
    commands:
    - chmod +x version.sh
    - latestTag=$($CODEBUILD_SRC_DIR/version.sh)
    - "echo $latestTag"
artifacts:
  files:
  - '**/*'
  discard-paths: yes

和控制台中的结果:CodeBuild

我还必须标记,当我只将echo 222粘贴到version.sh文件中时,我在CodeBuild控制台中得到了正确的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71113640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档