aws / copilot-cli

The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on AWS App Runner or Amazon ECS on AWS Fargate.
https://aws.github.io/copilot-cli/
Apache License 2.0
3.53k stars 417 forks source link

Support for GitLab pipeline triggers #1338

Open efekarakus opened 4 years ago

efekarakus commented 4 years ago

Support use cases where pipelines should be triggered by changes in a GitLab repository.

rotpunkt-dev commented 3 years ago

This feature would be really cool since many enterprise customers are using self-hosted Gitlab.

rubiagatra commented 3 years ago

First of all, thank you for the copilot CLI, I think this is the missing part of using ECS and we just started using it at our company.

@efekarakus I'd love to help, We use gitlab extensively in our company.

I saw commit by @huanjani https://github.com/aws/copilot-cli/commit/b9d08dea508eda8387c1936f1f3061fc303acc18 on Bitbucket. Is that more or less the same?

If someone could mentor me / give some context / steps to getting started work on this, I am really happy

efekarakus commented 3 years ago

Hi @rubiagatra !

Thank you for the kind words 😍

I saw commit by @huanjani b9d08de on Bitbucket. Is that more or less the same?

My understanding (which could be completely wrong 🙈) is that there is no native integration between AWS CodeStar connection and GitLab repositories (unlike Bitbucket or GitHub) yet.

So this feature request would require significantly more work following an architecture pattern like this for GitLab repositories: https://aws.amazon.com/blogs/devops/event-driven-architecture-for-using-third-party-git-repositories-as-source-for-aws-codepipeline/

Maybe a more native integration is to use GitLab pipelines themselves? (https://docs.gitlab.com/ee/ci/pipelines/) Is that what you'd expect instead of using AWS CodePipeline?

rubiagatra commented 3 years ago

Ahh, I see @efekarakus, I knew it is not that easy.

Yes, my understanding is using Gitlab runner install copilot-cli and put some credentials on env variables. After that, just simple svc deploy to deploy the service.

Thank you for your response, I'll hanging around the issues maybe I can give some help

jamin-aws-ospo commented 2 years ago

This would be very helpful.

In some cases, it is not possible/feasible to have the copilot deploy within the GitLab Runner (docker in docker, etc), but it is possible with a little effort to have the GitLab CI/CD use IAM credentials to kick off a CodeBuild project that does the copilot deploy. However, in my experience this does mean that the EnvManager role created by copilot needs to have an additional permission set on its trust policy document, specifically: sts:AssumeRole.