标签: aws-codebuild

CodeBuild+GitHub - 如何在 PULL_REQUEST_MERGED 上构建分支?

需求- 将拉取请求合并到分支时,我希望 CodeBuild 构建最新分支的提交,而不是拉取请求。我正在使用 CloudFormation,这是触发器片段:

 Triggers:
   Webhook: true
   FilterGroups:
     - - Type: EVENT
         Pattern: PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED
       - Type: BASE_REF
         Pattern: !Sub "refs/heads/${GithubBranchName}$"
         ExcludeMatchedPattern: false
Run Code Online (Sandbox Code Playgroud)

我尝试在同一个 CodeBuild 项目中添加 PULL_REQUEST_MERGED,但它构建了 PR。

我还尝试仅使用 PULL_REQUEST_MERGED 创建一个新的 CodeBuild 项目,并调整了 BASE_REF 和 HEAD_REF,但仍然没有运气,构建了拉取请求,而不是分支。

即使我使用的是 CloudFormation,请随时回复并参考 AWS 控制台的屏幕截图。

有可能吗?

git github amazon-web-services aws-cloudformation aws-codebuild

3
推荐指数
1
解决办法
1789
查看次数

如何检查最近完成的 Codebuild 构建项目的状态?

如何使用 CLI 检查最近的 AWS Codebuild 构建项目的状态?我看到您可以查看构建详细信息,但它需要特定的构建 ID,并且汇总的构建信息没有提供有关哪个构建阶段与控制台中显示的状态相关的任何详细信息。

jq aws-codebuild

3
推荐指数
1
解决办法
2085
查看次数

AWS CodeBuild 由于 UNAUTHORIZED_OPERATION_DELETE_NETWORK_INTERFACE 错误而失败

我有一个出现此错误的 CodeBuild 服务

UNAUTHORIZED_OPERATION_DELETE_NETWORK_INTERFACE:服务角色无权执行 ec2:DeleteNetworkInterface

我正在使用的服务角色具有 的必要权限ec2:DeleteNetworkInterface,但它被全局拒绝策略阻止 - 直到最近这一切都很好,因为之前 CodeBuild 一直使用DeleteNetworkInterface--dry-run标志运行。它只是检查我是否拥有权限而不是实际执行它。这是期望的行为,因为它不应该删除任何网络接口。这已经工作了几个月了。

但是,现在它失败了,因为--dry-run不再设置标志。我真的很困惑为什么,因为管道尚未更新并且到目前为止运行良好。

我们还发现了工作命令序列与失败命令序列之间的这些差异:

** Working sequence: "DescribeVpcs" is presented
DescribeSubnets
DescribeVpcs
DescribeNetworkInterfaces
DeleteNetworkInterface (Client.DryRunOperation)

** Failed sequence: DescribeVpcs is missed
DescribeSubnets
DescribeNetworkInterfaces
DeleteNetworkInterface (Client.UnauthorizedOperation)
Run Code Online (Sandbox Code Playgroud)

我已检查我的服务角色是否具有上述所有权限。

有人能指出我可能的原因吗?我真的很感激。谢谢。

amazon-web-services amazon-iam aws-codebuild

3
推荐指数
1
解决办法
2600
查看次数

如何在 AWS CodeBuild 中使用 git lfs?

由于 AWS CodeBuild 似乎不支持 git LFS(大型文件系统),我尝试安装它:

version: 0.2

phases:
  install:
    commands:
      - apt-get install -y bash curl
      - curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
      - apt-get install -y git-lfs
  pre_build:
    commands:
      - echo Downloading LFS files
      - git lfs pull
  build:
    commands:
      - echo Build started on `date`
  post_build:
    commands:
      - echo Build completed on `date`
Run Code Online (Sandbox Code Playgroud)

对于上面的代码,我收到以下错误(重命名的存储库地址):

[Container] 2020/06/18 16:02:17 Running command git lfs pull
fatal: could not read Password for 'https://username@bitbucket.org': No such device or address
batch response: Git credentials …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-codebuild

3
推荐指数
1
解决办法
5469
查看次数

安装了 aws cli v2 的 AWS CodeBuild nodejs 映像

我们正在构建我们的项目,我们必须使用 AWS CLI v2 来部署我们的项目。

我们使用的运行时版本是这个:

phases:
  install:
    runtime-versions:
      nodejs: 12.x
Run Code Online (Sandbox Code Playgroud)

是否有我们可以使用的安装了 AWS CLI v2 的官方 AWS CodeBuild Nodejs 映像,或者我们是否需要创建自己的映像。对于上述运行时,是否有一种优雅的方式升级到 v2?

这看起来可行,但将来可能不太稳定:

 # uninstall awscli version 1
 - pip3 uninstall -y awscli
 # install awscli version 2
 - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
 - unzip awscliv2.zip
 - ./aws/install
Run Code Online (Sandbox Code Playgroud)

amazon-web-services docker-image aws-codebuild

3
推荐指数
1
解决办法
2994
查看次数

AWS CodeCommit 阻止合并,直到成功构建

当在 AWS CodeComimit 中创建或更新拉取请求时,我使用 AWS Lambda 函数在 AWS CodeBuild 中启动构建,效果良好。

但是,我希望能够阻止将该拉取请求合并到存储库的主分支中,直到该 PR 的最新构建成功完成。

有谁知道是否有一种方法可以在AWS中完成?例如,合并按钮被禁用或不可用,比如没有获得足够的批准者?

amazon-web-services aws-lambda aws-codecommit aws-codebuild

3
推荐指数
1
解决办法
1134
查看次数

AWS CodeBuild 解压缩后的大小必须小于 350198 字节

我尝试同时在多个 lambda 中部署和更新代码,但是当推送到我的分支并部署 CodeBuild 时,出现以下错误:

调用UpdateFunctionCode操作时发生错误(InvalidParameterValueException):解压大小必须小于350198字节

[容器] 2021/04/24 00:09:31 命令未成功退出 aws lambda update-function-code --function-name my_lambda_03 --zip-file fileb://my_lambda_03.zip 退出状态 254 [容器] 2021 /04/24 00:09:31 阶段完成:POST_BUILD 状态:FAILED [Container] 2021/04/24 00:09:31 阶段上下文状态代码:COMMAND_EXECUTION_ERROR 消息:执行命令时出错:aws lambda update-function-code - -函数名称 my_lambda_03 --zip 文件 fileb://my_lambda_03.zip。原因:退出状态254

这是buildspec.yml

version: 0.2
phases:
  install:
    runtime-versions:
      python: 3.x
    commands:
      - echo "Installing dependencies..."
  build:
    commands:
      - echo "Zipping all my functions....."
      - cd my_lambda_01/
      - zip -r9 ../my_lambda_01.zip .
      - cd ..
      - cd my_lambda_02/
      - zip -r9 ../my_lambda_02.zip . …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda devops aws-codebuild

3
推荐指数
1
解决办法
1369
查看次数

无法在 AWS CodeBuild 映像中使用 amazon-linux-extras

我的 CDK 堆栈使用以下 CodeBuild 项目定义了 CodePipeline:

\n
project_build = codebuild.Project(self, "ProjectBuild",\n    project_name = "Build",\n    source = github_source,\n    environment = codebuild.BuildEnvironment(\n        build_image = codebuild.LinuxBuildImage.AMAZON_LINUX_2_2,\n        privileged = True),\n    environment_variables = { \xe2\x80\xa6 },\n    build_spec = codebuild.BuildSpec.from_source_filename("cdk/buildspec/build.yml"))\n
Run Code Online (Sandbox Code Playgroud)\n

我正在使用 Amazon Linux 2 映像,并且想要在其上安装 PostgreSQL,因此我制作了这个简单的构建规范测试文件:

\n
version: 0.2\n\nphases: \n  install:\n    commands:\n      - amazon-linux-extras install postgresql13\n  build: \n    commands:\n      - echo "foo"\n
Run Code Online (Sandbox Code Playgroud)\n

这是作业引发的错误:

\n
[Container] 2021/10/12 16:50:32 Entering phase INSTALL\n[Container] 2021/10/12 16:50:32 Running command amazon-linux-extras\n/root/.pyenv/versions/3.8.10/bin/python: No module named amazon_linux_extras\n\n[Container] 2021/10/12 16:50:34 Command did not …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-codepipeline aws-codebuild amazon-linux aws-cdk

3
推荐指数
1
解决办法
3417
查看次数

如何在代码构建的构建规范中将nodejs文件更改为14?

这是 codebuild 使用的 buildspec.yml 文件:

version: 0.2
env:
  shell: bash
phases:
  install:
    runtime-versions:
      nodejs: 14
   pre_build:
    commands:
      - echo Installing source NPM dependencies...
      - npm install -g aws-cdk
      - npm install -g typescript
      - npm install
      - npm run build 

  build:
    commands:
      - cdk --version 
      - cdk ls
      - cdk synth 
  post_build:
Run Code Online (Sandbox Code Playgroud)

/usr/local/bin/cdk -> /usr/local/lib/node_modules/aws-cdk/bin/cdk npm 警告 notsup 不支持 aws-cdk@2.9.0 引擎:想要:{"node":">= 14.15.0"}(当前:{"node":"12.22.2","npm":"6.14.13"})npm WARN notsup 与您的node/npm 版本不兼容:aws-cdk@2.9.0

最后cdk ls失败

感谢任何帮助,因为我已经尝试删除 node-modules 和 package-lock.json。

node.js aws-codebuild aws-cdk buildspec

3
推荐指数
1
解决办法
5741
查看次数

在AWS codebuild中为Android版本设置环境

我正在尝试在AWS服务器中安装Android环境.这里是buildspec.yml文件,其中包含用于安装Android SDK,NDK和gradlew以生成android构建的命令集.SDK和NDK for Android已成功下载并安装在AWS Ubuntu系统上.即使我可以看到成功构建./gradlew构建日志.

buildspec.yml

version: 0.1

phases:
  install:
    commands:
      - echo Nothing to do in the install phase...
      - sudo apt-get -y install wget
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
      - wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
      - tar zxvf android-sdk_r24.4.1-linux.tgz
      - mkdir -p android-sdk-linux/licenses
      - cp android-sdk-license ./android-sdk-linux/licenses/
      - echo sdk.dir='pwd'/android-sdk-linux > local.properties
      - wget https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip
      - unzip android-ndk-r13b-linux-x86_64.zip
      - export ANDROID_NDK_HOME=`pwd`/android-ndk-r13b
      - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:${ANDROID_NDK_HOME}
      - echo "sdk.dir=$ANDROID_HOME" > local.properties …
Run Code Online (Sandbox Code Playgroud)

android amazon-web-services aws-codebuild

2
推荐指数
1
解决办法
1014
查看次数