【问题标题】:Two sources (S3 & Github) in codepipeline via CDK通过 CDK 在代码管道中的两个源(S3 和 Github)
【发布时间】:2020-08-06 17:07:56
【问题描述】:

我正在尝试构建两个源 GitHubSourceAction (sourceOutput) 和 S3SourceAction (source2_Output) 的输入,并通过

将它们连接到 CDK/typescript
    buildAction = new codepipeline_actions.CodeBuildAction({
        actionName: 'my_build',
        project: pipelineProject,
        input: sourceOutput,
        extraInputs: [source2_Output],

进入一个构建过程。但是启动实例的文件系统只看到第一个(主要)源的内容。

在 fs 上不知何故 extraInputs 不可见。甚至不知道 extraInputs 是否是为此而设计的。想知道为什么输入不需要数组。

有人知道如何实现它吗?我的构建步骤只需要一个合并的代码库。查看 S3 工件存储桶,我有两个 ZIP(来自两个来源),但在构建期间没有。

【问题讨论】:

  • 解决此类问题的一个非常有用的方法是查看失败的代码构建日志的开头。它将向您展示创建的所有有用的环境变量,包括描述您的源位置的环境变量。
  • 这是一个很棒的提示。我浏览了 1000 次日志,但从一开始就没有。一种跳过标题部分的开发人员习惯;-) 赞成。

标签: aws-codepipeline aws-codebuild aws-cdk


【解决方案1】:

您在 CodeBuild 项目中的构建规范应参考第二个工件,如下所示:

version: 0.2

phases:
  build:
    commands:
      - touch source1_file
      - cd $CODEBUILD_SRC_DIR_source2_Output. # <================
      - touch source2_file

这在 AWS 文档中被简洁地描述为:

【讨论】:

  • 但我在命令部分创建了一个“ls”以查看日志中的文件系统,并且 source2_Output 中根本没有文件。事实上,它在 S3 的 ZIP 中只有一个文件,应该放在根文件夹中,对吧?即使没有,我也看不到子文件夹...如果我只使用 source2_Output 作为主要输入,一切正常,文件放在根 fs 中。
  • 但也许 shell 从主子文件夹开始,所以我看不到另一个。让我检查一下,并感谢到目前为止的输入。我很快就会回来的。
  • shell 从主要工件子文件夹开始,实际上您可以转到“00”(即“01”)的姊妹文件夹。将答案标记为正确。
猜你喜欢
  • 2022-01-14
  • 2023-01-19
  • 1970-01-01
  • 2023-01-11
  • 2022-01-14
  • 1970-01-01
  • 2020-09-08
  • 2021-10-18
  • 2022-06-29
相关资源
最近更新 更多