标签: aws-codebuild

Puppeteer 无法在 AWS CodeBuild 上运行 Chrome

我正在使用 Karma 使用 ChromeHeadless 测试 Angular4 项目,并且在本地一切正常。然后我尝试让它在 AWS CodeBuild 上运行。最初的问题是 CodeBuild VM 不包含 chrome headless,所以我包含了 Puppeteer npm 包并在 Karma conf 中相应地设置了 ENV Var。这在本地仍然可以正常工作,但是在 AWS CodeBuild 上我收到错误...

puppeteer/.local-chromium/linux-526987/chrome-linux/chrome: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

构建是从执行 maven 的标准 buildspec.yml 触发的mvn -B package。角度构建/测试是使用 eislett/frontend-maven-plugin (v1.4) 从 maven 完成的。

Puppeteer v1.0.0 Node v6.10.1 Karma v1.7.1 AWS CodeBuild - Ubuntu / Java / OpenJDK 8

我看过其他关于在 CI 机器上进行额外安装的帖子,但 CodeBuild 在每次运行时都会启动一个干净的 VM,所以这不是一个选项。有什么建议!?

karma-jasmine aws-codebuild angular google-chrome-headless puppeteer

7
推荐指数
3
解决办法
3243
查看次数

无法选择 S3 文件夹作为 AWS 上 CodePipeline 的源

我正在尝试使用 CodePipeline 和以下设置在 AWS 上设置 CI/CD 管道

资料来源:S3

构建:代码构建

部署:CodeDeploy

发布:EC2 实例

我已经按照这个链接完成了配置

但是我的管道失败并显示错误消息

The object with key 'code-sashi/api' does not exist.
Run Code Online (Sandbox Code Playgroud)

我已经检查并确认存储桶名称正确,并且存储桶内有一个文件夹“api”。

设置此项的选项明确指出我可以输入 S3 对象键或 S3 文件夹。在这种情况下,我想使用 S3 文件夹,因为我的构建工件仅在 CodeBuild 运行后准备就绪。

但是 CodePipeline 继续查找对象键并忽略我的文件夹。

我还尝试将 S3 文件夹设置为“api”、“/api”、“api/”,但它们都不起作用。我尝试将我的文件直接复制到存储桶并将文件夹设置为“/”,但失败并显示“对象键不能以尾随 / 结尾”的不同错误消息

基于此链接,我应该能够通过 S3 文件夹将存储桶的所有内容作为“/”获取。

如果有帮助,我将使用 Bitbucket Pipelines 将文件从 Bitbucket 私有存储库上传到 S3。不幸的是 CodePipeline 无法直接连接 Bitbucket,因此 S3 解决方法。奇怪的是,CodeBuild 连接到 Bitbucket 存储库没有问题,但如果它是 CodePipeline 的一部分,则无法这样做。

如何正确配置 CodePipeline 以从“code-sashi”存储桶和“api”文件夹中获取我的文件?将来会有其他包含代码的文件夹,所以我想把它们都放在一个桶里。

amazon-s3 amazon-web-services aws-codepipeline aws-codebuild

7
推荐指数
1
解决办法
4657
查看次数

使用 AWS 代码构建的 Virtualenv python:为什么没有找到停用命令?

我使用 AWS Codebuild 将 Python 代码从 GitHub 存储库上传到 AWS Lambda。所以我用virtualenv.

这是我的buildspec.yml

version: 0.2
phases:
 install:
   commands:
     - echo "install step"
     - apt-get update
     - apt-get install zip -y
     - apt-get install python3-pip -y
     - pip install --upgrade pip
     - pip install --upgrade awscli
     # Define directories
     - export HOME_DIR=`pwd`
     - cd $HOME_DIR
     - export PREPROCESSING_DIR=$HOME_DIR/preprocessing
     - export COMPARE_DIR=$HOME_DIR/compareHilightGood
     - export NLTK_DATA=$HOME_DIR/nltk_data
 pre_build:
   commands:
     - echo "pre_build step"
     # Configure preprocessing virtual environement
     - cd $PREPROCESSING_DIR
     - …
Run Code Online (Sandbox Code Playgroud)

python virtualenv amazon-web-services python-3.x aws-codebuild

7
推荐指数
1
解决办法
2104
查看次数

AWS Codebuild - 仅当提交消息包含字符串时才继续构建

我正在尝试做类似 CircleCI 的 [ci skip] 标签的事情,它可以让开发人员“选择加入”构建项目,即提交消息决定构建是否继续。提交消息中的字符串buildit将使构建继续进行,否则它将在预构建阶段终止。

我知道这个项目: https: //github.com/thii/aws-codebuild-extras。它提供 git 消息作为环境变量,但不确定如何在 buildspec.yml 中添加,如果消息中缺少if statement该消息,则会提前终止构建。buildit

git continuous-integration amazon-web-services aws-codebuild

7
推荐指数
1
解决办法
1373
查看次数

AWS Code PipeLine 未获取 BitBucket 帐户的所有存储库

我正在使用 AWS CodeBuild 和 CodePipeline 服务在我的项目中实施 CI/CD。

使用 Bitbucket 的 AWS CodeBuild 我正在获取我的 Bitbucket 帐户的所有存储库。

在创建 CodePipeLine 并连接到我的 BitBucket 时,我无法获取我的 BitBucket 帐户的所有存储库。

  • 我有 BitBucket 的管理员访问权限。

  • 在 Bitbucket 中成功注入 AWS CodeStar

那么在 BitBucket 账户中是否需要额外设置来实现 AWS Codepipeline?

bitbucket aws-codepipeline aws-codebuild

7
推荐指数
1
解决办法
1625
查看次数

AWS CodeBuild buildspec bash 语法错误:错误替换 if 语句

背景:

我正在使用 AWS CodeBuild buildspec.yml 迭代 GitHub 存储库中的目录。在循环目录路径之前$TF_ROOT_DIR,我使用 bash if 语句来检查 GitHub 分支名称是否$BRANCH_NAME在环境变量内$LIVE_BRANCHES。正如您在下面的错误屏幕截图中看到的,bash if 语句输出错误:syntax error: bad substitution。当我在本地 bash 脚本中重现 if 语句时,if 语句按预期工作。

以下是 CodeBuild 项目中定义的环境变量:

环境 以下是 buildspec.yml 中的相关片段:

version: 0.2
env:
  shell: bash
phases:
  build:
    commands:
      - |
        if [[ " ${LIVE_BRANCHES[*]} " == *"$BRANCH_NAME"* ]]; then
          # Iterate only through BRANCH_NAME directory
          TF_ROOT_DIR=${TF_ROOT_DIR}/*/${BRANCH_NAME}/
        else
          # Iterate through both dev and prod directories
          TF_ROOT_DIR=${TF_ROOT_DIR}/*/
        fi
      - echo $TF_ROOT_DIR
Run Code Online (Sandbox Code Playgroud)

这是显示语法错误的构建日志:

在此输入图像描述

以下是用于重现 CodeBuild …

bash amazon-web-services aws-codebuild

7
推荐指数
1
解决办法
1万
查看次数

如何修复 AWS code-build apt-get update exit status 100 以便 React 应用程序上传到 s3

我有 ReactJs 应用程序并使用 AWS s3 部署静态站点。我已经为 CI/CD 设置了 AWS 代码构建。我正在使用 bitbucket,当任何 PR 合并到 master 分支 Web-hook 出现时,都会触发 React 应用程序构建并在 s3 上上传构建。

它在过去两年中运行良好,但在上次构建中我遇到了以下错误。

W:GPG 错误:https://dl.yarnpkg.com/debian stable InRelease:以下签名无效:EXPKEYSIG 23E7166788B63E1E Yarn Packaging yarn@dan.cx E:存储库“https://dl.yarnpkg.com/debian” stable InRelease' 未签名。

[容器] 2021/02/04 07:39:02 命令未成功退出 apt-get update exit status 100 [容器] 2021/02/04 07:39:02 阶段完成:安装状态:失败 [容器] 2021/ 02/04 07:39:02 阶段上下文状态代码:COMMAND_EXECUTION_ERROR 消息:执行命令时出错:apt-get update。原因:退出状态100

这是完整的日志输出。

在此输入图像描述

这是buildspec.yml文件

# aws codebuild for React and deployment to S3
version: 0.2
phases:
  install:
    runtime-versions:
      nodejs: 10
    commands:
      - echo Installing build …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-codebuild

7
推荐指数
1
解决办法
6700
查看次数

AWS CodeBuild tsc 错误 TS2307:找不到模块

我创建了几个不同的 TypeScript cdk 管道,它们在 CodeBuild 阶段都遇到了相同的 tsc 错误。

其中两个管道是通过 cdk 文档复制的:

本质上,npm i(或npm ci) +tsc在本地工作正常,但是当通过 CodeBuild 完成时,似乎我的依赖项没有安装它们的依赖项,从而导致tsc中断。

有没有其他人遇到过这个问题?或者换句话说,为什么npm install+tsc在 CodeBuild 上表现不同?

代码构建日志 1:

[Container] 2021/03/11 19:11:35 Waiting for DOWNLOAD_SOURCE
[Container] 2021/03/11 19:11:36 Phase is DOWNLOAD_SOURCE
[Container] 2021/03/11 19:11:36 CODEBUILD_SRC_DIR=/codebuild/output/src038984068/src
[Container] 2021/03/11 19:11:36 YAML location is /codebuild/readonly/buildspec.yml
[Container] 2021/03/11 19:11:36 Processing environment variables
[Container] 2021/03/11 19:11:36 No runtime version selected in buildspec.
[Container] 2021/03/11 19:11:36 …
Run Code Online (Sandbox Code Playgroud)

typescript tsc aws-codebuild aws-cdk

7
推荐指数
2
解决办法
1818
查看次数

AWS在codeBuild中安装github私有包

您好,我有 codepipeline 来部署我的角度应用程序,在该应用程序中我使用我的私人 github 包。一切都在本地工作等。但是在 codeBuild 上我不知道如何注册到 github 包存储库。

我的构建规范如下所示:

version: 0.2

env:
    variables:
        S3_BUCKET: "{{s3_bucket_url}}"
        BUILD_ENV: "{{BUILD_ENV}}"
        BUILD_FOLDER: "dist"
phases:
  install:
    runtime-versions:
      nodejs: 14
  
  pre_build:
    commands:
      - echo Installing source NPM dependencies...
      - npm install
      - npm install -g @angular/cli
  
  build:
    commands:
      - echo Build started on `date` with $BUILD_ENV flag.
      - ng build $BUILD_ENV
  
  post_build:
     commands:
      - echo Build completed on `date`
      
      
artifacts:
    files:
        - '**/*'
    base-directory: 'dist*'
Run Code Online (Sandbox Code Playgroud)

如果 npm install 失败,因为404 Not Found - GET https://registry.npmjs.org …

npm aws-codepipeline aws-codebuild

7
推荐指数
1
解决办法
1803
查看次数

AWS Codebuild“名为 '3.1' 的 dotnet 运行时版本未知。此构建映像具有以下版本:2.2”

我使用 codepipeline 线来构建和部署 - 从 github 拉取并部署到 Fargate 容器 - 在 codebuild 中构建 dotnet 应用程序时,我遇到了这个错误。相当难住。有谁知道为什么它认为我的应用程序是 dotnet 2.2?

这是一条全新的管道


[Container] 2021/05/20 05:54:31 Waiting for agent ping
[Container] 2021/05/20 05:54:33 Waiting for DOWNLOAD_SOURCE
[Container] 2021/05/20 05:54:34 Phase is DOWNLOAD_SOURCE
[Container] 2021/05/20 05:54:34 CODEBUILD_SRC_DIR=/codebuild/output/src177986340/src
[Container] 2021/05/20 05:54:34 YAML location is /codebuild/output/src177986340/src/config/buildspec.yml
[Container] 2021/05/20 05:54:34 No commands found for phase name: install
[Container] 2021/05/20 05:54:34 Processing environment variables
[Container] 2021/05/20 05:54:35 Selecting 'dotnet' runtime version '3.1' based on manual selections...
[Container] 2021/05/20 05:54:35 Phase …
Run Code Online (Sandbox Code Playgroud)

c# amazon-web-services docker .net-core aws-codebuild

7
推荐指数
1
解决办法
4095
查看次数