云服务器内容精选

  • 编排流水线任务 任务是流水线上可管理的最小执行单元,可以在流水线阶段中进行纳管和串并行编排。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,单击阶段下“新建任务”,弹出“新建任务”侧滑框。 单击任务下方的,可以添加一个和该任务串行编排的任务,即按顺序执行,如:构建任务和部署任务应该按顺序先后执行。 单击“并行任务”,可以添加一个和已有任务并行编排的任务,即同时执行,如:代码检查任务和构建任务可以同时执行。 为任务配置插件及任务信息,操作说明如下: 表1 配置任务 操作项 说明 添加插件 流水线插件分为构建插件、代码检查插件、部署插件、测试插件和通用插件5种类型,可以根据不同类型进行过滤或搜索,插件来源请参考管理流水线扩展插件。 将鼠标移动到插件卡片,单击“添加”,即可将插件添加到任务中,请根据需要配置插件相关信息: 填写插件名称。 选择需要调用的任务。支持搜索过滤,如果找不到合适的任务,请根据界面提示新建任务。 如果调用的任务有参数,参数也会显示出来,请根据需要配置相应参数。 插件名称后有对应标记,单个任务中最多只能添加一个带“任务”标记的插件;带“草稿”标记的插件表示当前用户发布为草稿的自定义插件。 “挂起流水线”插件只能添加在不含并行任务的阶段中。 删除插件 将鼠标移动到已经添加的插件卡片,单击,选择“删除”,可以删除当前插件。 更换插件 将鼠标移动到已经添加的插件卡片,单击,选择“更换”,或者单击插件上方“更换插件”,可以返回插件列表,更换当前插件。 排序插件 单击插件卡片不松开,可以移动插件调整插件顺序。 任务配置 配置任务ID、执行主机和执行条件。 任务ID:。流水线阶段任务的ID,同一条流水线上的任务ID不能重复。支持大小写英文字母、数字、“-”、“_”,长度范围为1~128个字符。 执行主机:包括内置执行机和自定义执行机。 内置执行机:服务提供的执行主机,用户无需配置开箱即用。 自定义执行机:支持用户自行配置工具和运行环境,以满足不同任务的需求。选择自定义执行机需提前在资源池添加代理资源池,详细操作请参见资源池管理。 说明: 执行主机仅针对非任务级插件。 任务选择 必须选择:必须执行,执行流水线时该任务默认勾选且无法修改。 禁止选择:禁止执行,执行流水线时该任务禁止勾选。 默认选择:执行流水线时该任务默认勾选但可按需修改。 默认不选择:执行流水线时该任务默认不勾选但可按需修改。 执行条件:即流水线阶段任务执行时需要满足的前提条件,通过配置执行条件,可以控制阶段任务是否执行。 前置任务未选择仍执行:上一个任务状态执行成功或未选择,都继续执行当前任务。 前置任务成功时执行:上一个任务执行成功才执行当前任务。 前置任务失败时执行:上一个任务执行失败才执行当前任务。 始终执行:始终执行当前任务,上一个任务状态是失败、成功、中止或忽略执行,都继续执行当前任务。 表达式:当前置任务到达终态,包括:成功(COMPLETED)、失败(FAILED)、中止(CANCELED)、忽略执行(IGNORED),且表达式结果为“true”时,执行当前任务,否则不执行。表达式形式为“${{ }}”,由流水线上下文、操作符、函数或常量任意组合而成。表达式编写请参考流水线执行条件表达式。 示例: 在执行条件中定义不管前置任务(任务ID为“job_1”)运行成功或失败,均执行当前任务,表达式语法如下: ${{ jobs.job_1.status == 'COMPLETED' || jobs.job_1.status == 'FAILED' }} 配置完任务,单击“确定”,完成任务添加,可根据实际需要编辑、复制、删除、移动任务。 表2 管理任务 操作项 说明 编辑任务 单击任务卡片,可以编辑当前任务。 复制任务 将鼠标移动到任务卡片,单击,可以复制一个和该任务串行编排的任务。 删除任务 将鼠标移动到任务卡片,单击,根据删除提示确定是否删除任务。 排序任务 单击任务卡片不松开,可以移动任务调整任务顺序。 说明: 任务并行执行时不支持调整顺序。 任务编排完成后,保存流水线。 父主题: 配置流水线
  • 配置流水线权限 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“权限管理”页面,关闭“使用项目权限配置”,即可为流水线配置角色权限和人员权限。 配置角色权限 通过勾选/取消勾选,指定角色对当前流水线的查看、执行、编辑、删除操作权限。 图1 配置角色权限 配置人员权限 通过勾选/取消勾选,指定人员对当前流水线的查看、执行、编辑、删除操作权限。 图2 配置人员权限
  • 配置流水线并发策略 默认单条流水线最大执行并发数为5,超过并发数后新的触发忽略不执行。可以通过并发策略为单条流水线配置同时处于运行中和暂停状态的流水线最大实例个数,即并发数,更细粒度地为用户分配并发资源。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“执行计划”页面。 打开“并发策略”开关(默认关闭),设置并发数和超过并发后执行策略。 图6 配置并发策略 表3 配置并发策略 参数项 说明 并发个数 单条流水线最大执行并发数,受套餐和购买并发数限制。 超过并发后执行策略 超过并发数后可选择如下两种处理方式: 排队等待:超过并发数后新的触发排队等待执行,可进入流水线详情页查看排队记录。 单条流水线最多支持100条排队记录。 单条排队记录排队时长超过24小时后会被放弃执行。 排队记录支持手动取消排队,即放弃执行。 排队记录执行时,配置信息以入队时为准。 忽略不执行:超过并发数后新的触发忽略不执行。 配置完成后,保存流水线。
  • Webhook触发 通过Webhook触发,用户可以通过任意第三方系统触发流水线执行。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“执行计划”页面。 打开“Webhook”开关(默认关闭),参数说明如表2,保存流水线后即可生效。 图5 配置Webhook触发 表2 配置Webhook触发 参数项 说明 Webhook触发源 将该地址复制到第三方系统触发器,使用Post方法调用,即可运行流水线。 IAM 认证 启用IAM认证,需要将用户IAM Token加入接口请求头,调用示例如下: curl --header "Content-Type: application/json" --header 'x-auth-token: XXXX(IAM Token)' --request POST --data "{}" Webhook触发源 不启用IAM认证,调用示例如下: curl --header "Content-Type: application/json" --request POST --data "{}" Webhook触发源
  • 配置流水线事件触发 事件触发包括代码提交时触发、合并请求时触发、创建标签时触发。码云代码仓还支持Pull Request、新建issue、评论issue等其他事件。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“执行计划”页面,在“事件触发”勾选触发事件进行配置。 代码提交时触发(代码托管/码云) 监听代码提交触发事件,可以组合分支和具体路径的包含/排除范围,当在关联的代码仓库中有代码提交且所在的分支和变更文件的路径满足包含/排除策略,会自动触发关联流水线执行。 分支过滤:可以通过设置包含或排除分支,来监听触发事件所在的目标分支。 路径过滤:可以通过设置包含或排除路径,来监听触发事件所在的变更文件路径。 图1 配置代码提交时触发 合并请求时触发(代码托管/码云) 监听合并请求触发事件,可以组合分支和具体路径的包含/排除范围,对新建、合并、更新和重新打开事件设置触发策略,当在关联的代码仓库中触发合并请求事件且分支满足包含/排除策略,会自动触发关联流水线执行。 事件说明: 新建:合并请求创建时触发。 合并:合并请求合入时触发,该事件会同时触发代码提交事件。 重新打开:合并请求重新打开时触发。 更新:合并请求内容更新、设置更新或者源代码更新时触发,打开“仅代码更新触发”,则仅源代码更新时触发。 分支说明: 分支过滤:可以通过设置包含或排除分支,来监听触发事件所在的目标分支。 路径过滤:可以通过设置包含或排除路径,来监听触发事件所在的变更文件路径。 图2 配置合并请求时触发 创建标签时触发(代码托管) 监听创建标签触发事件,可以设置标签包含/排除范围,当在关联的代码仓库创建标签且满足标签包含/排除策略,会自动触发关联流水线执行。 图3 配置创建标签时触发 其他事件(码云) 评论Pull Request:评论Pull Request时触发流水线执行。 新建issue:新建issue时触发流水线运行。 评论issue:评论issue时触发流水线运行。 除了上述事件外,码云代码仓还支持开启事件触发成功后自动评论。 先匹配分支,再匹配路径,都匹配成功,则触发流水线。 路径排除优先于路径包含,即先匹配排除的路径,如果变更文件没有全部在排除范围内,则继续匹配包含的路径。若未配置包含路径,则匹配成功,触发流水线;若配置了包含路径,并且变更文件在路径排除范围外有任意一个在包含范围内,则匹配成功,触发流水线。 标签排除优先于标签包含,即标签同时在包含和排除中时,则匹配失败,不触发流水线。 路径匹配范围:单次提交的前300个变更文件,变更文件数超过300建议拆分。 配置完成后,保存流水线。
  • 配置流水线定时执行 配置流水线在指定的时间自动执行。 访问CodeArts Pipeline首页。 在流水线列表页搜索目标流水线,单击操作列,选择“编辑”。 进入流水线“任务编排”页面,切换至“执行计划”页面。 单击“定时任务”区域的“创建定时任务”,增加一个定时任务,打开“启用定时执行”开关(默认开启),配置如下信息: 图4 配置定时任务 表1 定时任务 参数项 说明 执行日 选择执行日期。 时间段 选择执行时间段和时区。 间隔时间 设置间隔时间,即每间隔多长时间触发一次。 最多可以设置10个定时任务。 单击右上角,可删除定时任务;单击右上角,可复制定时任务。 配置完成后,保存流水线。
  • 自定义参数配置 登录流水线。 搜索目标流水线,单击“操作”列,选择“编辑”。 进入“任务编排”页面,切换至“参数设置”页面。 参数列表说明如下: 基本信息 说明 立即新建 单击参数列表处的“立即新建”,可以新增参数。 名称 参数名称。可自定义修改参数名称。 说明: 自定义参数名称不可与系统预定义参数名称相同。 类型 参数可选类型,包括:字符串类型、枚举类型、自增长类型。 默认值 根据需要填写/选择参数值。 私密参数 参数为私密参数时,系统会将输入参数做加密存储,使用时进行解密,同时在运行日志里不可见。 运行时设置 打开“运行时设置”开关,在执行流水线时支持修改该参数的值。 参数描述 参数的说明。 删除 单击参数所在行,可以删除该参数。 根据需要新建并配置参数。 单击参数列表下的“立即创建”,新增一个新的参数,请根据需要自定义参数名称、类型(默认为“字符串类型”)、参数值,设置私密参数或运行时设置等。 字符串类型 参数值为字符串,可在“默认值”列自定义参数值、设置为私密参数或运行时设置等。 枚举类型 选中枚举类型后弹出“枚举参数”对话框,可以设置“可选取值”。 设置完成后,单击“默认值”下拉框,在下拉列表选择其中一个值,再次单击“枚举”类型,可修改可选取值。 自增长类型 参数值为字符串,默认值为“1.0.0”。该参数如果被流水线某个任务引用,每全新执行一次流水线后,下次执行时该参数值末位数字会自动加1。 自增长类型参数值如果不是以数字结尾,执行后就不会自动增长。
  • env context env context包含流水线运行的自定义参数相关的信息。 名称 类型 说明 name string 自定义参数名称。 value string 自定义参数值。 内容示例 如下示例为流水线一次运行包含的env context信息,包含了两个自定义参数。 { "var_1": "val1", "var_2": "val2" } 使用示例 如需要在某个任务的输入中获取本次流水线运行的自定义参数“var_1”的值,可使用如下语法来获取。 ${{ env.var_1 }}
  • 使用场景 大部分上下文可在流水线任意任务和步骤中使用。 在任务的执行条件中引用上下文,来指定某个任务的执行条件。 示例:如下使用表示任务在指定代码源的运行分支为“master”时才运行。 ${{ sources.my_repo.target_branch == 'master' }} 在任务的输入框中引用上下文获取信息。 示例1:如下使用表示获取流水线运行的所有信息。 ${{ pipeline }} 示例2:如下使用表示获取流水线运行的触发方式。 ${{ pipeline.trigger_type }}
  • pipeline context pipeline context包含流水线运行相关的信息。 名称 类型 说明 pipeline object 流水线运行相关的所有信息,此对象包含的属性包括:project_id、pipeline_id、run_number、timestamp、trigger_type和run_id。 pipeline.project_id string 当前流水线所属项目ID,同现有系统预定义参数PROJECT_ID。 pipeline.pipeline_id string 当前流水线ID,同现有系统预定义参数PIPELINE_ID。 pipeline.run_number string 流水线执行编号,同现有系统预定义参数PIPELINE_NUMBER。 pipeline.timestamp string 流水线执行时间戳,同现有系统预定义参数TIMESTAMP。如:20211222124301。 pipeline.trigger_type string 流水线触发类型,同现有系统预定义参数PIPELINE_TRIGGER_TYPE。 pipeline.run_id string 流水线执行ID,同现有系统预定义参数PIPELINE_RUN_ID。 内容示例 如下示例为一次手动运行的流水线包含的pipeline context信息。 { "project_id": "6428c2e2b4b64affa14ec80896695c49", "pipeline_id": "f9981060660249a3856f46c2c402f244", "run_number": "168", "timestamp": "20231016000004", "trigger_type": "Manual", "run_id": "c2f507f93510459190b543e47f6c9bec" } 使用示例 如需在某个任务的输入中获取本次流水线运行的触发方式,可使用如下语法来获取。 ${{ pipeline.trigger_type }}