我们可以为两个存储库启用 AWS Codepipeline 吗?

问题描述 投票:0回答:2

我通过 AWS Codepipeline 和 Code Build 设置了 CICD,以 Bitbucket 作为源,并将我的项目部署到 ECS Fargate 集群。运行良好。

现在我在 bitbucket 中有两个存储库。一是前端,二是后端。现在我很好奇如何仅使用一个 AWS Codepipeline 为两个项目设置 CICD。如何与两个不同的存储库建立连接?它将如何运作?可以吗? 有什么解决办法吗?我的目的是使用一个 Codepipeline 部署项目的前端和后端。它如何与两个存储库一起使用?

amazon-web-services bitbucket aws-codepipeline aws-codebuild cicd
2个回答
0
投票
    目前,Codepipeline 仅接受 1 个且仅 1 个存储库作为其源。所以没有适合您要求的内置解决方案。
  1. 但是,您可以做一些棘手的事情:在 CodePipeline 阶段之一中添加 CodeBuild 构建。在构建容器中,您可以安装 git 并执行
  2. git clone

    ,因为您可以在容器中运行任何命令。之后,将第一个和第二个存储库代码作为工件存储在 S3 中。

    
    

  3. 我不确定为什么您更喜欢 1 个管道而不是 2 个管道,因为常见做法建议前端和后端拥有自己的存储库和管道来分离关注点。但如果您坚持这样做,您可以使用 CodeBuild,因为它只是一个允许您执行任何命令的容器。

0
投票

const source = CodePipelineSource.gitHub('bharath-t/cdk-project', 'main'); const python_source = CodePipelineSource.gitHub('bharath-t/python-project', 'main'); const prebuild = new ShellStep('Prebuild', { input: python_source, primaryOutputDirectory: './src', commands: ['pip install flake8 pytest build', 'flake8 --exit-zero', 'pytest'], }); // create pipeline, copy prebuild output into siblingdir within artifacts bucket const pipeline = new CodePipeline(this, 'TestPipeline', { pipelineName: 'TestPipeline', synth: new ShellStep('Synth', { input: source, additionalInputs: { '../siblingdir': prebuild, }, commands: ['npm ci', 'npm run build', 'npx cdk synth', 'ls -a ../siblingdir'], }) });

© www.soinside.com 2019 - 2024. All rights reserved.