我们使用 AWS CodeBuild 和 GitHub Webhook 来触发构建过程。当为以 Jira 票证前缀(即 )开头的分支创建 PR 时oscs-278,我们使用 Terraform 构建一个新环境。当我们提交 PR 时,它会触发构建过程来更新该环境。
这一流程对我们来说效果很好,特别是自 2021 年 2 月起,AWS CodeBuild 允许您将并发构建设置为 1。这对我们来说很重要,因为我们一次应该只进行一个部署,其余的应该排队。
但是,我们当前的构建过程最多需要 15 分钟,如果我们在此时间范围内提交到分支,则如果另一个构建正在进行中,则该项目不会排队。
这可能是 GitHub Webhooks 的问题,还是与 AWS CodeBuild 有关的问题。
来自AWS文档:
队列中的最大构建数是并发构建限制的五倍。
所以理论上,队列中应该有 5 个(最多)
我正在使用 CodePipeline 进行 CI/CD 流程。目前,我正在从 CodeCommit 迁移到私有 GitHub 存储库,我希望继续自动化我的标签和发布流程。问题是我需要一个个人令牌才能这样做。然而,话虽这么说,我们确实对同一个存储库使用 CodeStar 连接。现在我的问题是,是否可以提取 CodeBuild 连接中提供的令牌?
TIA
amazon-web-services aws-codepipeline aws-codebuild aws-codestar
我在部署网站时遇到错误
Minimum Node version not met :(
You are using Node v12.22.2. We require Node >=14 or up!
Run Code Online (Sandbox Code Playgroud)
我正在使用codebuildCI 并在构建规范文件中实现一些脚本。一段代码是多行if命令,例如:
- |
if [ [ -v $DB_TABLE_NAME ] && [ $IS_PRIMARY_REGION != 'true' ] ]; then
yarn test
elif [ [ $IS_PRIMARY_REGION == 'false' ] ]; then
yarn test $PRIMARY_REGION
fi
Run Code Online (Sandbox Code Playgroud)
问题是如果yarn test内部if失败,codebuild 项目不会失败。结果就成功了。如何使多行语句构建失败?
如何等待 CodeBuild 在 Step Functions 状态机内完成?
我现在能想到的唯一等待是使用循环和计时器,就像下面的流程一样,但这是唯一的方法吗?没有“WaitForBuild”操作或类似的操作吗?
拼写错误:BatchGetBuildBatches 应该是 BatchGetBuilds。
我为我的 aws codeBuild 使用多阶段 docker 构建来构建我的应用程序。我的 docker 文件的形状是:
FROM strapi/base:14-alpine AS dependencies
...
FROM strapi/base:14-alpine As liveProduction
ENV NODE_ENV="production"
COPY --from=dependencies /toto /toto
....
FROM strapi/base:14-alpine As liveDevelopment
ENV NODE_ENV="development"
COPY --from=dependencies /toto /toto
...
Run Code Online (Sandbox Code Playgroud)
为了构建我的生产应用程序,我使用 aws buildspect.yml ,在此文件中我有以下命令:
FROM strapi/base:14-alpine AS dependencies
...
FROM strapi/base:14-alpine As liveProduction
ENV NODE_ENV="production"
COPY --from=dependencies /toto /toto
....
FROM strapi/base:14-alpine As liveDevelopment
ENV NODE_ENV="development"
COPY --from=dependencies /toto /toto
...
Run Code Online (Sandbox Code Playgroud)
该命令效果不太好,因为所有阶段都按以下顺序执行:依赖项、liveProduction、liveDevelopment。在这种情况下,我只想执行依赖项和 liveDevelopment。
我想知道是什么问题?为什么 docker build 的 --target 选项在 codeBuild 中不起作用?
谢谢。
我正在尝试构建我的测试项目,但是每次它在pre_build中失败。我检查了错误日志,上面写着:
[容器] 2017/03/26 19:28:21调用GetAuthorizationToken操作时发生错误(AccessDeniedException):用户:arn:aws:sts :: 074181202020:assumed-role / codebuild-Testing-project-service-role / AWSCodeBuild未经授权执行:资源上的ecr:GetAuthorizationToken:*
我尝试附加以下政策:
- IAMSelfManageServiceSpecificCredentials
- IAMF完全访问
- AmazonS3ReadOnlyAccess
- CodeBuildPolicy-Testing-project-1490555003058
- IAMReadOnlyAccess
- AWSCodeBuildAdminAccess
- IAMUserSSHKeys
- AWSCodeCommitFullAccess
- IAMF完全访问
- AmazonS3FullAccess
- 管理员访问
- AWSElasticBeanstalkFullAccess
- AWSCodePipelineFullAccess
- WSCodeBuildAdminAccess
但这仍然给我同样的错误
任何帮助,将不胜感激!谢谢!
amazon-ec2 amazon-web-services aws-codepipeline aws-codebuild
我有一个AWS Codebuild作业,当我以root用户身份手动初始化时,它可以正常工作。
我有一条代码流水线,应在代码提交合并到主代码时启动构建作业。它会触发作业并开始构建,但是在尝试下载源时失败。
我已经将完整的S3 / codebuild / codecommit策略附加到了管道中,但是仍然会拒绝访问。
我缺少哪些权限?
我正在使用AWS CodeBuild构建应用程序,它被配置为将构建工件推送到AWS S3存储桶.在检查S3存储桶中的artifcats /对象时,我意识到对象已被加密.
是否可以禁用artifcats /对象加密?
encryption artifacts amazon-s3 amazon-web-services aws-codebuild
我正在使用默认的NodeJS和无服务器模板测试CodeStar。由于某种原因,此模板对于运行时环境默认为nodejs 8.11,对于构建环境默认为6.10。
为了同步它们,我尝试覆盖构建映像以使其匹配。不幸的是,我遇到了一个错误:
奇怪的是,我没有这个名字的任何角色。与AWS没有太多关系,所以很可能我在这里忽略了明显的事情?
aws-codebuild ×10
aws-codestar ×2
node.js ×2
amazon-ec2 ×1
amazon-s3 ×1
artifacts ×1
docker ×1
dockerfile ×1
encryption ×1
version ×1