是否可以通过rest调用调用gitlab ci/cd步骤?

问题描述 投票:0回答:1

我是 gitlab ci/cd 的新手。查看文档,它建议我们可以在 gilab pipeline 中定义/设置 ci/cd 步骤。另外,设置 webhook 集成。是否可以设置一个步骤并通过网络调用的发布请求来调用该步骤?在下面的示例中,我知道,我可以自动执行提到的步骤或从浏览器手动调用它。但是,是否可以通过网络调用调用每个步骤,例如 test-job1 和 test-job-2 ?

build-job:
  stage: build
  script:
    - echo "Hello, $GITLAB_USER_LOGIN!"

test-job1:
  stage: test
  script:
    - echo "This job tests something"

test-job2:
  stage: test
  script:
    - echo "This job tests something, but takes more time than test-job1."
    - echo "After the echo commands complete, it runs the sleep command for 20 seconds"
    - echo "which simulates a test that runs 20 seconds longer than test-job1"
    - sleep 20

deploy-prod:
  stage: deploy
  script:
    - echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
  environment: production

我已经设置了一个 gitlab 存储库,并在我的 gitlab ci 文件中添加了 ci/cd 步骤。

gitlab-ci cicd gitlab-api
1个回答
0
投票

您可以使用 Gitlab 的 API 运行手动作业。

curl --request POST "https://gitlab.example.com/api/v4/projects/1/jobs/1/play" \ --header "Content-Type: application/json" \ --header "PRIVATE-TOKEN: <your_access_token>"
您的工作需要添加“何时:手动”,或者一条使其成为手动工作的规则。

test-job1: stage: test when: manual script: - echo "This job tests something"
为了获取作业 ID,您可能需要执行其他 API 调用,例如

列出管道作业。请注意,您可能需要分页,因为它返回最后 20 个管道。在这里你可以获得所有手工作业:

curl --globoff --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/jobs?scope[]=manual"
    
© www.soinside.com 2019 - 2024. All rights reserved.