概要
パラメータがある場合などいちいち UI から設定するのが面倒な場合に使えます
環境
- Gitlab 16.11.5
実行方法
curl -s --request POST "https://your-gitlab-url/api/v4/projects/1/jobs/100/play" \
--header "Content-Type: application/json" \
--header "PRIVATE-TOKEN: glpat-xxx" \
--data @variables.json | jq .
variables.json というファイルにパラメータを設定します
{
"job_variables_attributes": [
{
"key": "TEST_VAR_1",
"value": "test1"
},
{
"key": "TEST_VAR_2",
"value": "test2"
}
]
}
ジョブを特定する
ポイントですが manual なジョブしか実行することはできません
自動で流れるジョブは retry などを使います
なので jq や検索などを使って実行可能なジョブを検索しましょう
例えば manual でかつジョブ名が deploy という名前のジョブの id を取得する場合は以下のような感じです
curl -s --globoff --header "PRIVATE-TOKEN: glpat-xxx" "https://your-gitlab-url/api/v4/projects/1/jobs" | jq '.[] | select(.status == "manual" and .name == "deploy").id'
特定のコミットに紐づくジョブを探したい場合は commit.short_id
or commit.id
を使います
curl -s --globoff --header "PRIVATE-TOKEN: glpat-xxx" "https://your-gitlab-url/api/v4/projects/1/jobs" | jq '.[] | select(.status == "manual" and .commit.short_id == "12345678").id'
すべてのジョブを取得
最新 20 件までしか取得できないので注意しましょう
curl -s --globoff --header "PRIVATE-TOKEN: glpat-xxx" "https://your-gitlab-url/api/v4/projects/1/jobs"
プロジェクトのIDを取得する方法
プロジェクトのページから Settings -> General で確認できます
最後に
変数名など忘れがちなのでその場合に variables.json で管理できるのも楽です
0 件のコメント:
コメントを投稿