文档首页/ 流水线 CodeArts Pipeline/ API参考/ API/ 流水线管理/ 获取流水线状态/获取流水线执行详情
更新时间:2024-08-29 GMT+08:00
分享

获取流水线状态/获取流水线执行详情

功能介绍

获取流水线状态/获取流水线执行详情,仅返回有执行记录的流水线数据

调用方法

请参见如何调用API

URI

GET /v5/{project_id}/api/pipelines/{pipeline_id}/pipeline-runs/detail

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释: CodeArts项目ID。 约束限制: 不涉及 取值范围: 32位字符。 默认取值: 不涉及。

pipeline_id

String

参数解释: 流水线ID。 约束限制: 不涉及 取值范围: 32位字符。 默认取值: 不涉及。

表2 Query参数

参数

是否必选

参数类型

描述

pipeline_run_id

String

参数解释: 流水线运行实例ID。 约束限制: 不涉及。 取值范围: 32位字符,仅由数字和字母组成。 默认取值: 不涉及。

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释: 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

id

String

参数解释: 流水线运行实例ID。 取值范围: 32位字符,仅由数字和字母组成。

pipeline_id

String

参数解释: 流水线ID。 取值范围: 32位字符,仅由数字和字母组成。

manifest_version

String

参数解释: 流水线版本。 取值范围: 默认3.0。

name

String

参数解释: 流水线名称。 取值范围: 仅包含中文、大小写英文字母、数字、'-'和'_',且长度为[1,128]个字符。

description

String

参数解释: 流运行描述。 取值范围: 最长1024字符。

is_publish

Boolean

参数解释: 是否为变更流水线。 取值范围: true, false。

executor_id

String

参数解释: 运行人ID。 取值范围: 32位字符,仅由数字和字母组成。

executor_name

String

参数解释: 运行人名称。 取值范围: 不涉及。

status

String

参数解释: 流水线运行实例状态。 取值范围: COMPLETED - 已完成, RUNNING - 运行中, FAILED - 失败, CANCELED - 取消, PAUSED - 暂停, SUSPEND - 挂起, IGNORED - 忽略。

trigger_type

String

参数解释: 触发类型 取值范围: Manual - 手动触发,Scheduler - 定时任务触发,RollBack - 回滚执行,以及WebHook类型:CreateTag - Tag 触发,Note - Gitee仓库评论触发,Issue - Gitee 仓库Issue触发,MR - 合并请求触发,Push - 代码push触发。

run_number

Integer

参数解释: 流水线运行序号。 取值范围: 大于等于 1。

start_time

Long

参数解释: 开始时间。 取值范围: 不涉及。

end_time

Long

参数解释: 结束时间。 取值范围: 不涉及。

stages

Array of StageRun objects

参数解释: 阶段运行信息列表,包含各个阶段的详细运行信息 约束限制: 不涉及。

domain_id

String

参数解释: 租户ID。 取值范围: 32位字符,仅由数字和字母组成。

project_id

String

参数解释: 项目ID。 取值范围: 32位字符,仅由数字和字母组成。

region

String

参数解释: 局点。 取值范围: 不涉及。

component_id

String

参数解释: 微服务ID。 取值范围: 不涉及。

language

String

参数解释: 语言,暂时仅包含中英文。 取值范围: zh-cn, en-us。

sources

Array of RunPipelineSource objects

参数解释: 行源信息。 取值范围: 不涉及。

artifacts

Array of PackageInfo objects

参数解释: 流水线运行产物。 取值范围: 不涉及。

subject_id

String

参数解释: 流水线运行实例ID。 取值范围: 不涉及。

group_id

String

参数解释: 分组ID。 取值范围: 32位字符。

group_name

String

参数解释: 分组名称。 取值范围: 不涉及。

detail_url

String

参数解释: 详情页地址。 取值范围: 不涉及。

current_system_time

Long

参数解释: 当前系统时间。 取值范围: 不涉及。

表5 StageRun

参数

参数类型

描述

id

String

参数解释: 阶段ID。 取值范围: 32位字符。

category

String

参数解释: 阶段类型。 取值范围: 不涉及。

name

String

参数解释: 阶段名称。 取值范围: 仅支持输入中文、大小写英文字母、数字、'-'、'_'、','、';'、':'、'.'、'/'、'('、')'、'('、')'及空格,其中空格不可在名称开头或结尾使用,且长度为[1,128]个字符。

identifier

String

参数解释: 阶段唯一标识。 取值范围: 不涉及。

run_always

Boolean

参数解释: 是否总是运行。 取值范围: true, false。

parallel

String

参数解释: 是否并行。 取值范围: 不涉及。

is_select

Boolean

参数解释: 是否选中。 取值范围: 不涉及。

sequence

Integer

参数解释: 序列号。 取值范围: 大于等于0。

depends_on

Array of strings

参数解释: 依赖。 取值范围: 不涉及。

condition

String

参数解释: 运行条件。 取值范围: 不涉及。

status

String

参数解释: 状态。 取值范围: INIT - 初始化,QUEUED - 排队,RUNNING - 运行中,CANCELED - 取消,COMPLETED - 已完成,FAILED - 失败,SKIPPED - 跳过,IGNORED - 忽略,PAUSED - 暂停, SUSPEND - 挂起, ASYNC_RUNNING - 异步运行,ASYNC_FAILED - 异步失败,UNSELECTED - 未选择,REDISPATCH - 重新调度。

start_time

Long

参数解释: 开始时间。 取值范围: 不涉及。

end_time

Long

参数解释: 结束时间。 取值范围: 不涉及。

pre

Array of StepRun objects

参数解释: 阶段准入。 取值范围: 不涉及。

post

Array of StepRun objects

参数解释: 阶段准出。 取值范围: 不涉及。

jobs

Array of JobRun objects

参数解释: 任务。 取值范围: 不涉及。

表6 JobRun

参数

参数类型

描述

id

String

参数解释: 任务ID。 取值范围: 不涉及。

category

String

参数解释: 任务类型。 取值范围: 不涉及。

sequence

Integer

参数解释: 序列号。 取值范围: 不涉及。

async

String

参数解释: 是否异步。 取值范围: true, false。

name

String

参数解释: 任务名称。 取值范围: 不涉及。

identifier

String

参数解释: 任务唯一标识。 取值范围: 不涉及。

depends_on

Array of strings

参数解释: 依赖。 取值范围: 不涉及。

condition

String

参数解释: 运行条件。 取值范围: 不涉及。

resource

String

参数解释: 执行资源。 取值范围: 不涉及。

is_select

Boolean

参数解释: 是否选中。 取值范围: true, false。

timeout

String

参数解释: 任务超时设置。 取值范围: 不涉及。

last_dispatch_id

String

参数解释: 任务上次下发ID。 取值范围: 不涉及。

status

String

参数解释: 状态。 取值范围: INIT - 初始化,QUEUED - 排队,RUNNING - 运行中,CANCELED - 取消,COMPLETED - 已完成,FAILED - 失败,SKIPPED - 跳过,IGNORED - 忽略,PAUSED - 暂停, SUSPEND - 挂起, ASYNC_RUNNING - 异步运行,ASYNC_FAILED - 异步失败,UNSELECTED - 未选择,REDISPATCH - 重新调度。

message

String

参数解释: 错误信息。 取值范围: 不涉及。

start_time

Long

参数解释: 开始时间。 取值范围: 不涉及。

end_time

Long

参数解释: 结束时间。 取值范围: 不涉及。

steps

Array of StepRun objects

参数解释: 步骤。 取值范围: 不涉及。

exec_id

String

参数解释: 任务执行ID。 取值范围: 不涉及。

表7 StepRun

参数

参数类型

描述

name

String

参数解释: 步骤名称。 取值范围: 不涉及。

task

String

参数解释: 步骤插件名。 取值范围: 不涉及。

business_type

String

参数解释: 插件业务类型。 取值范围: Normal - 通用, Build - 构建, Test - 测试, Check - 代码检查, 部署 - Deploy。

inputs

Array of inputs objects

参数解释: 输入参数。 取值范围: 不涉及。

sequence

Integer

参数解释: 序列号。 取值范围: 不涉及。

official_task_version

String

参数解释: 官方插件版本号。 取值范围: 不涉及。

identifier

String

参数解释: 唯一标识符。 取值范围: 不涉及。

multi_step_editable

Integer

参数解释: 是否可编辑。 取值范围: true, false。

id

String

参数解释: 步骤ID。 取值范围: 32位字符。

endpoint_ids

Array of strings

参数解释: 扩展点ID列表。 取值范围: 不涉及。

last_dispatch_id

String

参数解释: 上次下发任务ID。 取值范围: 32位字符。

status

String

参数解释: 状态。 取值范围: RUNNING - 运行中,CANCELED - 取消,COMPLETED - 已完成,FAILED - 失败。

message

String

参数解释: 错误消息。 取值范围: 不涉及。

start_time

Long

参数解释: 开始时间。 取值范围: 不涉及。

end_time

Long

参数解释: 结束时间。 取值范围: 不涉及。

表8 inputs

参数

参数类型

描述

key

String

参数解释: 输入参数名。 取值范围: 不涉及。

value

Object

参数解释: 输入参数值。 取值范围: 不涉及。

表9 RunPipelineSource

参数

参数类型

描述

type

String

参数解释: 源类型。 取值范围: 目前支持code - 代码源类型。

params

params object

参数解释: 代码源相关参数。 取值范围: 不涉及。

表10 params

参数

参数类型

描述

git_type

String

参数解释: 代码仓类型。 取值范围: 可选codehub,gitee,github,gitcode,gitlab。

git_url

String

参数解释: 代码仓https地址。 取值范围: 不涉及。

ssh_git_url

String

参数解释: 代码仓ssh地址。 取值范围: 不涉及。

web_url

String

参数解释: 代码仓页面地址。 取值范围: 不涉及。

repo_name

String

参数解释: 代码仓名。 取值范围: 不涉及。

default_branch

String

参数解释: 默认分支。 取值范围: 不涉及。

endpoint_id

String

参数解释: 扩展点ID。 取值范围: 不涉及。

codehub_id

String

参数解释: Repo代码仓ID。 取值范围: 不涉及。

alias

String

参数解释: 代码仓别名。 取值范围: 不涉及。

build_params

build_params object

参数解释: 构建相关参数。 取值范围: 不涉及。

表11 build_params

参数

参数类型

描述

action

String

参数解释: 合并请求事件类型 取值范围: MR的具体事件类型,取值有:open - 打开,reopen - 重开,update - 更新,merge - 合并。

build_type

String

参数解释: 基于分支还是tag运行。 取值范围: branch - 分支触发,tag - 标签触发。

commit_id

String

参数解释: 代码仓提交ID。 取值范围: 不涉及。

event_type

String

参数解释: CodeArts项目ID。 取值范围: Manual - 手动触发,Scheduler - 定时任务触发,RollBack - 回滚执行,以及WebHook类型:CreateTag - Tag 触发,Note - Gitee仓库评论触发,Issue - Gitee 仓库Issue触发,MR - 合并请求触发,Push - 代码push触发。

merge_id

String

参数解释: 合并请求ID。 取值范围: 不涉及。

message

String

参数解释: 代码仓提交信息。 取值范围: 不涉及。

source_branch

String

参数解释: 源分支。 取值范围: 不涉及。

tag

String

参数解释: 标签。 取值范围: 不涉及。

target_branch

String

参数解释: 目标分支。 取值范围: 不涉及。

codehub_id

String

参数解释: Repo代码仓ID。 取值范围: 不涉及。

source_codehub_id

String

参数解释: 源Repo代码仓ID。 取值范围: 不涉及。

source_codehub_url

String

参数解释: 源Repo代码仓地址。 取值范围: 不涉及。

source_codehub_http_url

String

参数解释: 源Repo代码仓http地址。 取值范围: 不涉及。

表12 PackageInfo

参数

参数类型

描述

name

String

参数解释: 产物名。 取值范围: 不涉及。

packageType

String

参数解释: 产物类型。 取值范围: 不涉及。

version

String

参数解释: 产物版本号。 取值范围: 不涉及。

downloadUrl

String

参数解释: 产物下载地址。 取值范围: 不涉及。

请求示例

GET https://{endpoint}/v5/54f90b75fc1447b1b65e8d3a9f77923d/api/pipelines/e5460d1d403146a1935c2d4b68ef506c/pipeline-runs/detail

响应示例

状态码: 200

OK

{
  "id" : "25adfa6784124cfc9b9274ceaecf9957",
  "pipeline_id" : "98b6ea1536374df883bcc3b129bca4e9",
  "manifest_version" : "3.0",
  "name" : "子流水线qqq",
  "description" : null,
  "is_publish" : false,
  "executor_id" : "847a5317086c41798469d0868535943a",
  "executor_name" : "beta环境账号",
  "status" : "COMPLETED",
  "trigger_type" : "Manual",
  "run_number" : 1,
  "start_time" : 1674207197000,
  "end_time" : 1674207197000,
  "stages" : [ {
    "id" : "aac8063fbf084eec9722c77ece6dd283",
    "category" : null,
    "name" : "阶段_1",
    "identifier" : "0",
    "run_always" : false,
    "parallel" : null,
    "is_select" : true,
    "sequence" : 0,
    "depends_on" : [ ],
    "condition" : null,
    "status" : "COMPLETED",
    "start_time" : 1674207197000,
    "end_time" : 1674207197000,
    "pre" : [ {
      "name" : null,
      "task" : "official_devcloud_autoTrigger",
      "business_type" : null,
      "inputs" : null,
      "sequence" : 0,
      "official_task_version" : null,
      "identifier" : null,
      "multi_step_editable" : 0,
      "id" : "5a03bdb6ad2848ac972ba21744627a8c",
      "endpoint_ids" : null,
      "last_dispatch_id" : "6b3fa4c664844f33abc02053ddd76f62",
      "status" : "COMPLETED",
      "message" : null,
      "start_time" : 1674207197000,
      "end_time" : 1674207197000
    } ],
    "post" : [ ],
    "jobs" : [ {
      "id" : "1cde6a3815164cd18d0fa4038f876e46",
      "category" : null,
      "sequence" : 0,
      "async" : null,
      "name" : "新建任务",
      "identifier" : "1674207161661b4a41d77-a478-4538-870b-ffb589c1af06",
      "depends_on" : [ ],
      "condition" : null,
      "resource" : null,
      "is_select" : true,
      "timeout" : "",
      "last_dispatch_id" : null,
      "status" : "COMPLETED",
      "message" : "not found steps",
      "start_time" : 1674207197000,
      "end_time" : 1674207197000,
      "steps" : [ ]
    } ]
  } ],
  "domain_id" : "ce8df55870164338a72d7e828a966a2a",
  "project_id" : "6428c2e2b4b64affa14ec80896695c49",
  "region" : "region01",
  "component_id" : "",
  "language" : "zh-cn",
  "sources" : [ {
    "type" : "code",
    "params" : {
      "git_type" : "codehub",
      "git_url" : "https://example.com/clsyz00001/aaaaa.git",
      "ssh_git_url" : "git@example.com:clsyz00001/aaaaa.git",
      "web_url" : "",
      "repo_name" : "aaaaa",
      "default_branch" : "master",
      "endpoint_id" : "",
      "codehub_id" : "2111677704",
      "alias" : "",
      "build_params" : {
        "action" : null,
        "build_type" : "branch",
        "commit_id" : "990ea057751d299f5575aac25bf97e88a60b461e",
        "event_type" : "Manual",
        "merge_id" : null,
        "message" : "新建文件 Dockerfile",
        "source_branch" : null,
        "tag" : null,
        "target_branch" : "master",
        "codehub_id" : "2111677704"
      }
    }
  } ],
  "artifacts" : null,
  "subject_id" : "25adfa6784124cfc9b9274ceaecf9957"
}

SDK代码示例

SDK代码示例如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.codeartspipeline.v2.region.CodeArtsPipelineRegion;
import com.huaweicloud.sdk.codeartspipeline.v2.*;
import com.huaweicloud.sdk.codeartspipeline.v2.model.*;


public class ShowPipelineRunDetailSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        CodeArtsPipelineClient client = CodeArtsPipelineClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsPipelineRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowPipelineRunDetailRequest request = new ShowPipelineRunDetailRequest();
        request.withPipelineRunId("<pipeline_run_id>");
        try {
            ShowPipelineRunDetailResponse response = client.showPipelineRunDetail(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartspipeline.v2.region.codeartspipeline_region import CodeArtsPipelineRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartspipeline.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]

    credentials = BasicCredentials(ak, sk)

    client = CodeArtsPipelineClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CodeArtsPipelineRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowPipelineRunDetailRequest()
        request.pipeline_run_id = "<pipeline_run_id>"
        response = client.show_pipeline_run_detail(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartspipeline "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartspipeline/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := codeartspipeline.NewCodeArtsPipelineClient(
        codeartspipeline.CodeArtsPipelineClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowPipelineRunDetailRequest{}
	pipelineRunIdRequest:= "<pipeline_run_id>"
	request.PipelineRunId = &pipelineRunIdRequest
	response, err := client.ShowPipelineRunDetail(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

OK

401

Unauthorized

403

Forbidden

404

Not Found

错误码

请参见错误码

相关文档