我正在尝试将我的 GitHub 存储库与 S3 Hook ,因此每次提交时,AWS CodePipeline 都会部署 ./<path>/public
文件夹到指定的 S3 bucket
.
到目前为止,在我的管道中,Source
有效(连接到 GitHub 并获取新的提交)但是 Deploy
失败,因为:Action execution failed
BundleType must be either YAML or JSON
.
我是这样设置的:
代码流水线
- 操作名称:来源
- 操作提供者:GitHub
- 存储库:帐户/存储库
- 部门:硕士
- GitHub 网络 Hook
代码部署
- 计算类型:AWS Lambda
- 服务角色:myRole
- 部署设置:CodeDeployDefault.LambdaAllAtOnce
IAM 角色:我的角色
- AWS 服务
- 选择将使用此角色的服务:Lambda/CodeDeploy
- 选择您的用例:CodeDeploy
- 策略:AWSCodeDeployRole
我知道必须有一个 buildspec.yml
根文件夹中的文件。我试过使用一些我能找到的文件,但它们似乎不起作用。我做错了什么或者我应该如何编辑 buildspec
文件来做我想做的事?
Update
感谢@Milan Cermak。我明白我需要做的:
代码流水线:
- 第 1 阶段:来源: Hook GitHub 存储库。这个正在工作。
- 第 2 阶段:构建:使用 CodeBuild 使用
buildspec.yml
仅获取所需的文件夹文件在 repo 的根文件夹中。 - 第 3 阶段:部署:使用
Action Provider: S3
Input Artifacts: OutputArtifacts (result of stage 2).
Bucket: the bucket that hosts the static website.
CodePipeline 有效。但是,输出仅包含文件 (.html),不包含嵌套在公用文件夹中的文件夹。
我检查过 this并想出了如何使用 discard-paths: yes
删除嵌套文件夹的路径但我无法获取 ./<path>/public
中的所有子文件夹文件夹。有什么建议吗?
最佳答案
CodeBuild 使用 buildspec,但 CodeDeploy 使用 appspec。
有appspec文件吗?
关于amazon-web-services - AWS CodePipeline 操作执行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54468187/