shell 命令触发Jenkins job

调用Jenkins api, 例如:

curl -v -X POST http://xxxx:8888/job/${JOB}/buildWithParameters \
--user user:passwd \
--data name='zhou'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
下面是一个 GitLab 触发 Jenkins 执行流水线并将流水线结果反馈给 GitLab 的示例: 1. 创建 Jenkins Job 首先,需要在 Jenkins 中创建一个 Job,用于执行 GitLab 合并请求触发的流水线。这个 Job 的主要作用是拉取代码,执行构建操作,生成流水线报告,并将报告发送给 GitLab。具体而言,这个 Job 需要完成以下几个步骤: - 拉取代码:从 GitLab 上指定的分支中拉取代码。 - 执行构建操作:根据项目的具体需求,执行编译、测试、打包、部署等操作。 - 生成流水线报告:将构建过程中的日志、测试结果、代码覆盖率等信息汇总成一份流水线报告。 - 将报告发送给 GitLab:使用 GitLab 提供的 API,将流水线报告发送给 GitLab。 2. 创建 GitLab Pipeline 接下来,在 GitLab 中创建一个 Pipeline,用于触发 Jenkins Job 执行。具体而言,需要在 GitLab 中创建一个 `.gitlab-ci.yml` 文件,配置如下: ``` stages: - test jenkins: stage: test script: - curl -X POST http://<JENKINS_HOST>/job/<JOB_NAME>/build --user <USERNAME>:<API_TOKEN> --data-urlencode json='{"parameter": [{"name":"GITLAB_SOURCE_BRANCH", "value":"$CI_MERGE_REQUEST_SOURCE_BRANCH"}, {"name":"GITLAB_TARGET_BRANCH", "value":"$CI_MERGE_REQUEST_TARGET_BRANCH"}, {"name":"GITLAB_PROJECT_ID", "value":"$CI_PROJECT_ID"}, {"name":"GITLAB_MERGE_REQUEST_IID", "value":"$CI_MERGE_REQUEST_IID"}, {"name":"GITLAB_MERGE_REQUEST_TITLE", "value":"$CI_MERGE_REQUEST_TITLE"}, {"name":"GITLAB_CI_PIPELINE_ID", "value":"$CI_PIPELINE_ID"}, {"name":"GITLAB_CI_COMMIT_SHA", "value":"$CI_COMMIT_SHA"}]}' -H "Content-Type:application/x-www-form-urlencoded" only: - merge_requests ``` 这个配置文件中包含一个 `jenkins` Job,它的作用是触发 Jenkins Job 执行。具体而言,它通过 `curl` 命令调用 Jenkins 的 API,将 GitLab 中的一些信息(如分支、项目 ID、合并请求 ID 等)传递给 Jenkins,以便 Jenkins 在执行 Job 时获取这些信息。 3. 在 Jenkins 中配置构建参数 为了使 Jenkins Job 能够获取 GitLab 中的一些信息,需要在 Jenkins 中配置一些构建参数。具体而言,需要在 Jenkins Job 的配置页面中添加以下参数: - GITLAB_SOURCE_BRANCH:合并请求的源分支。 - GITLAB_TARGET_BRANCH:合并请求的目标分支。 - GITLAB_PROJECT_ID:GitLab 项目的 ID。 - GITLAB_MERGE_REQUEST_IID:合并请求的 ID。 - GITLAB_MERGE_REQUEST_TITLE:合并请求的标题。 - GITLAB_CI_PIPELINE_ID:GitLab 的 Pipeline ID。 - GITLAB_CI_COMMIT_SHA:GitLab 的 Commit SHA。 这些参数的值将在触发 Jenkins Job 时通过 API 传递进来,并且可以在 Jenkins Job 中使用。 4. 在 Jenkins 中配置流水线 最后,在 Jenkins 中配置流水线,用于执行构建操作、生成流水线报告,并将报告发送给 GitLab。具体而言,可以使用 Jenkins 的 Pipeline 语法,编写一个包含以下步骤的流水线: - 拉取代码:从 GitLab 上指定的分支中拉取代码。 - 执行构建操作:根据项目的具体需求,执行编译、测试、打包、部署等操作。 - 生成流水线报告:将构建过程中的日志、测试结果、代码覆盖率等信息汇总成一份流水线报告。 - 将报告发送给 GitLab:使用 GitLab 提供的 API,将流水线报告发送给 GitLab。 具体而言,可以使用 Jenkins 的 `sh` 命令执行 Shell 脚本,或者使用 Jenkins 插件执行特定的构建操作。在生成流水线报告时,可以使用 Jenkins 的插件或者自定义脚本,将日志、测试结果、代码覆盖率等信息汇总成一份报告。在将报告发送给 GitLab 时,可以使用 Jenkins 的 `curl` 命令调用 GitLab 的 API,将报告发送到指定的合并请求中。 以上就是一个 GitLab 触发 Jenkins 执行流水线并将流水线结果反馈给 GitLab 的示例,具体的流水线操作需要根据项目的实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值