Kye*_*JmD 2 continuous-integration amazon-web-services continuous-deployment aws-codepipeline aws-codebuild
我正在尝试设置一个代码构建,其中我有一个模块可以为其他构建创建依赖项。这些其他构建将使用第一个构建生成的工件,并且这些构建应该并行运行。我正在查看 CodeBuild 的文档,似乎那里没有信息。我的 buildspec.yml 示例
version: 0.2
#env:
#variables:
# key: "value"
# key: "value"
#parameter-store:
# key: "value"
# key: "value"
#git-credential-helper: yes
phases:
#install:
#If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
#If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
#runtime-versions:
# name: version
# name: version
#commands:
# - command
# - command
# pre_build:
# commands:
# - mkdir artifacts
# - pwd
# - ls
build:
commands:
- cd frontend
- npm install
- cd ..
- cd othermodule
- npm install
#post_build:
#commands:
# - cp -a $CODEBUILD_SRC_DIR/frontend/dist.
# - command
artifacts:
files:
- package-lock.json
- node_modules/*
base-directory: frontend
#cache:
#paths:
# - paths
Run Code Online (Sandbox Code Playgroud)
CodeBuild 用于自动化构建步骤,而不是自动化整个 CICD 过程。在 CodeBuild 中,您指定buildspec.yml自动化需要在该特定构建中执行的一系列步骤。
如果您需要自动化构建序列,那么您拥有的最简单的选择是使用 CodePipeline,您可以在其中为 CICD 过程中的每个步骤创建阶段。在您的情况下,这意味着一个步骤(阶段)将是您在帖子中描述的 CodeBuild 操作,它将过渡到另一个阶段,您可以在其中指定另一个 CodeBuild 操作,并且可以指定这些操作以获取上一步的工件作为输入,您可以并行运行它们。
所以它看起来像这样
INPUT -> STAGE(执行初始构建)-> STAGE(并行指定多个构建操作 -在控制台中,这可以通过将它们水平放置而不是垂直放置来完成)
另一种不使用 CodePipeline 的选项是将 Lambda 函数与 CloudWatch 事件一起使用。一旦构建完成,CodeBuild 就会发布事件。您可以将 Lambda 函数订阅到该事件并编写将根据需要执行以下构建的代码。