我正在寻找可以触发Gitlab-ci管道来部署特定分支并将结果发送到松弛的lambda。
谢谢。
答案 0 :(得分:1)
要触发作业,您需要向GitLab的API端点发送
POST
请求:curl -X POST <API url>/projects/<your_awesome_gitlab_project>/trigger/pipeline
必需的参数是将在其上执行触发的trigger’s
token
和Gitref
。有效的引用是分支和标签。您可以通过querying the API或访问 CI / CD 设置页面找到项目的:id
,该页面提供了不言自明的示例。
要检查管道结果,请使用CloudWatch Events:
您可以设置规则以按计划运行AWS Lambda函数。本教程显示了如何使用AWS管理控制台或AWS CLI创建规则。如果您想使用AWS CLI但尚未安装,请参阅AWS Command Line Interface User Guide。
要检查作业状态,请使用:Get a single pipeline或List project pipelines API调用。
curl --header“ PRIVATE-TOKEN:”“ https://gitlab.example.com/api/v4/projects/1/pipelines/46”
Slack
要使用Slack
发送lambda
通知,请使用本教程:
Creating an AWS Lambda Function and API Endpoint | Slack
CI触发器由token保护。通常,足以保护您的端点。
但是,如果方法还不够,则可以使用一些技术来“隐藏”端点:
GitLab
的客户端IP whitelisting AWS
Security Groups
for Lambda或for EC2 Nginx
或HAProxy