#github #amazon-cloudformation #aws-codepipeline
#github #aws-cloudformation #aws-codepipeline
Вопрос:
У меня есть конвейер, настроенный на использование стороннего поставщика исходного кода GitHub следующим образом:
...
Resources:
DevPipeline:
Type: AWS::CodePipeline::Pipeline
Properties:
Name: my-pipeline
RoleArn: !Ref 'PipelineRole'
Stages:
- Name: Source
Actions:
- Name: GitHub
ActionTypeId:
Category: Source
Owner: ThirdParty
Version: 1
Provider: GitHub
Configuration:
Owner: !Ref GitHubOwner
Repo: !Ref GitHubRepo
Branch: !Ref GitHubBranch
OAuthToken: !Ref GitHubToken
OutputArtifacts:
- Name: JavaSource
RunOrder: 1
...
Я хотел бы иметь возможность запускать git
операции с исходным кодом на следующих этапах сборки. Однако это исходное действие не включает .git
папку в выходной артефакт.
Как я могу изменить это, чтобы я мог получить доступ git
к операциям в репозитории?
Ответ №1:
CodePipeline недавно выпустила новую версию действия GitHub Source, которое выполняет фактический клон репозитория git вместо получения пакета zip из GitHub.
Новое действие GitHub (версия 2) использует CodeStarSourceConnection. Итак, нам просто нужно указать поставщика исходных действий CodeStarSourceConnection [1] на этапе исходного кода вашего конвейера. Ресурс AWS::CodeStarConnections::Connection [2] также поддерживается в CloudFormation. Вы можете ссылаться на ARN существующего соединения или создать новое в CloudFormation. Существующие подключения можно найти здесь [0].
Вот пример фрагмента шаблона:
Resources:
CodeStarConnection:
Type: 'AWS::CodeStarConnections::Connection'
Properties:
ConnectionName: MyGitHubConnection
ProviderType: GitHub
CodePipeline:
Type: 'AWS::CodePipeline::Pipeline'
Properties:
Stages:
- Name: Source
Actions:
- Name: SourceAction
ActionTypeId:
Category: Source
Owner: AWS
Version: 1
Provider: CodeStarSourceConnection
OutputArtifacts:
- Name: SourceArtifact
Configuration:
ConnectionArn: !Ref CodeStarConnection
BranchName: master
FullRepositoryId: username/repository
RunOrder: 1
... ...
Примечание: Соединение, созданное с помощью CloudFormation, по умолчанию находится в состоянии ОЖИДАНИЯ. Вы можете сделать его статус ДОСТУПНЫМ, обновив соединение в консоли [3]. После того, как соединение будет доступно, вы можете использовать свой CodePipeline с исходным кодом Github версии 2. Действие.
Ссылки:
[0] Соединения — https://console.aws.amazon.com/codesuite/settings/connections
[1] CodeStarSourceConnection — https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodestarConnectionSource.html
[2] AWS ::CodeStarConnections::Connection — https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html
[3] Обновление ожидающего подключения — https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html