【发布时间】:2020-07-26 18:19:15
【问题描述】:
你能帮忙吗,我有以下场景,我浏览了很多视频、博客,但找不到与我的用例匹配的任何内容
要求: 在 GitLab 中编写 CI\CD 管道,可以按此顺序促进以下阶段
- verify # unit test, sonarqube, pages
- build # package
- publish # copy artifact in repository
- deploy # Deploy artifact on runtime in an test environment
- integration # run postman\integration tests
所有其他阶段都可以正常工作,但对于部署阶段,由于一些限制,我必须使用 Jenkins 远程 API 和以下脚本提交现有的 Jenkins 作业,但是脚本返回异步响应并启动 Jenkins 的问题作业和部署阶段完成并进入下一阶段(集成)。
Run Jenkins Job:
image: maven:3-jdk-8
tags:
- java
environment: development
stage: deploy
script:
- artifact_no=$(grep -m1 '<version>' pom.xml | grep -oP '(?<=>).*(?=<)')
- curl -X POST http://myhost:8081/job/fpp/view/categorized/job/fpp_PREP_party/build --user mkumar:1121053c6b6d19bf0b3c1d6ab604f22867 --data-urlencode json="{\"parameter\":[{\"name\":\"app_version\",\"value\":\"$artifact_no\"}]}"
注意:使用 GitLab CE 版和 Jenkins CI 项目服务不可用。
我正在寻找一种从管道触发 Jenkins 作业的可能方法,并且只有在成功完成 Jenkins 作业后,我的集成阶段才会开始执行。
感谢您的帮助!
【问题讨论】:
标签: jenkins gitlab jenkins-pipeline gitlab-ci