我正在使用 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
我正在尝试使用 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
我使用 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
我正在尝试做类似 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
我正在使用 AWS CodeBuild 和 CodePipeline 服务在我的项目中实施 CI/CD。
使用 Bitbucket 的 AWS CodeBuild 我正在获取我的 Bitbucket 帐户的所有存储库。
在创建 CodePipeLine 并连接到我的 BitBucket 时,我无法获取我的 BitBucket 帐户的所有存储库。
我有 BitBucket 的管理员访问权限。
在 Bitbucket 中成功注入 AWS CodeStar
那么在 BitBucket 账户中是否需要额外设置来实现 AWS Codepipeline?
背景:
我正在使用 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 项目中定义的环境变量:
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 …
我有 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) 我创建了几个不同的 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) 您好,我有 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 …
我使用 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) aws-codebuild ×10
.net-core ×1
amazon-s3 ×1
angular ×1
aws-cdk ×1
bash ×1
bitbucket ×1
c# ×1
docker ×1
git ×1
npm ×1
puppeteer ×1
python ×1
python-3.x ×1
tsc ×1
typescript ×1
virtualenv ×1