微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用ThirdParty GitHub源提供程序保留AWS Pipeline的git操作

如何解决使用ThirdParty GitHub源提供程序保留AWS Pipeline的git操作

我有一个配置为使用ThridParty 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操作?

解决方法

CodePipeline最近发布了新版本的GitHub Source操作,该操作执行git存储库的实际克隆,而不是从GitHub获取“ zip”捆绑包。

新的GitHub动作(版本2)使用CodeStarSourceConnection。因此,我们只需要在管道的源阶段中指定CodeStarSourceConnection [1]源操作提供程序即可。 CloudFormation还支持AWS :: CodeStarConnections :: Connection资源[2]。您可以引用现有Connection的ARN,或在CloudFormation中创建一个新的ARN。现有连接可以在[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创建的连接处于PENDING状态。您可以通过在控制台[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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。