跳到主要内容

自定义操作

在默认操作列表之上,用户可以定义自己的操作并在流水线中使用。配置后,自定义操作可在操作列表的流行/自定义分区中的整个工作区中使用。

配置规则

  1. 自定义操作在项目存储仓中定义为YAML
  2. 操作可以存储在两个地方:
    a. 在根目录中(单个操作)
    b. 在 .buddy/actions目录中,每个操作都在其自己的子目录中(多个操作)
  3. 存储仓应包含:
    a. 操作配置 - action.ymlaction.yaml(不区分大小写)
    b. 操作图标(可选) – action.jpgaction.jpegaction.svgaction.ico(不区分大小写)
    c. 描述(可选) – readme.md(不区分大小写)
  4. 操作的名称在整个工作区中必须独特。如果名称不独特,则会出现解析错误。
  5. 扫描存储仓以查找新操作:
    a. 每次推送到存储仓中的默认分支时,新添加的操作标有“最新”标签。
    b. 在每个标签推送到存储仓时。新添加的操作被标记为与推送相同的标签。
  6. 自定义操作的解析日志位于推送事件详细信息中

示例

name: "My Action"
inputs:
user:
required: true
ip:
password:
type: PASSWORD
required: true
execute_commands:
- echo $user@$ip -p $password
docker_image_name: "node"
docker_image_tag: "16"

自定义操作YAML参数

名称描述
name
必填
YAML定义中操作的ID,最多40个字符(a-zA-Z0-9_)
docker_image_name
必填
从中启动容器的Docker镜像
docker_image_tag
必填
从中启动容器的Docker镜像标签
execute_commands容器中运行的命令列表
shell命令shell的类型,默认:bash
title操作标题和操作添加屏幕上显示的操作标题,最多40个字符
category操作分类,最多100个字符
inputs显示在操作视图上的输入列表
tabs显示在操作视图上的标签页列表
output定义在流水线运行期间由操作生成的环境变量表
volume_mappings流水线文件系统挂载到的容器中的路径
working_directory操作的工作目录
cached_dirs要缓存的依赖项和目录可用于每条流水线运行

输入参数列表

名称描述
id
必填
输入的ID,用于在容器中创建环境变量。最多40个字符(a-zA-Z0-9_),必须独特。不能以buddy开头。 区分大小写,即userUser充当两个独立的输入。
name输入标签上显示的名称,最多100个字符,如果未提供,则从ID中获取值并用下划线 _ 替换空格。
type输入的类型,默认:文本
info在输入下方添加带有附加信息的描述,最多200个字符
options输入的选项,要求AUTOSUGGEST和SELECT类型
required默认:false
masked默认:false
default注入到输入的可选默认值

输入类型列表

名称描述
TEXT单行文本输入
PASSWORD用于输入密码凭据,始终掩盖于前端。
AUTOCOMPLETE支持自动完成,要求:options
SELECT选项列表,要求:options
CHECKBOX一个可以勾选和不选的选项框
TEXTAREA多行文本输入
FILESYSTEM_PATH用于选择流水线文件系统中的路径
COMMAND构建操作后样式化的多行文本区域
GITHUB_INTEGRATION允许在项目中选择GitHub集成,使用集成ID作为输入变量,生成GITHUB_TOKEN
AWS_INTEGRATION允许在项目中选择AWS集成,使用集成ID作为输入变量。生成AWS_ACCESS KEY和AWS_SECRET_KEY

操作标签页排序

从左到右:

  • 设置(如果定义输入则显示)
  • 自定义(如果已定义)
  • 变量
  • (触发)条件
  • 选项
提示

启用变量支持和自动建议($),在选项标签页中勾选变量选项框。

YAML中使用自定义操作

- action: "My action"
type: "CUSTOM"
custom_type: "name:tag"
提示

如果未提供标签,则应用latest

文件系统、工作目录与附加缓存

默认:

  1. 没有挂载文件系统。
  2. 没有额外的目录(cached_dirs)被缓存。
  3. 工作目录保持如镜像中所定义的那样。

访问文件系统

如果定义volume_mappings,则意味着要求访问文件系统。相应的选项框将出现在输入上。如果未授予访问权限,则在添加/编辑操作时会出现错误。

文件系统映射示例

volume_mapping:
- /:/app
信息

免费注册Buddy,并在10分钟内部署您的项目!GitHub登录 | 电子邮件注册