使用API触发作业

本文档描述了如何使用CircleCI API触发作业。

概述

使用CircleCI API触发工作您已在定义.circleci / config.yml

下面的示例演示如何触发deploy_docker通过使用工作旋度

旋度-u$ {CIRCLE_API_USER_TOKEN}:\-d'build_parameters [CIRCLE_JOB] = deploy_docker'\//www.drag240sx.com/api/v1.1/project/ < vcs-type > / <组织> / <回购> /树/ > <分支

以上例子的替代语法:

  • 用双引号代替单引号(- d”build_parameters CIRCLE_JOB = deploy_docker”)
  • 转义方括号(-d build_parameters \ [CIRCLE_JOB \] = deploy_docker)

在这个例子中使用的变量的一些注意事项:

  • CIRCLE_API_USER_TOKEN是一个个人API令牌
  • 是一个占位符变量,并且是指你选择的VCS(无论是github要么bitbucket都)。
  • <有机>是一个占位符变量,是指你的CircleCI组织的名称。
  • 回购> <是一个占位符变量,是指你的存储库的名称。
  • <分支>是一个占位符变量,是指你的分支的名称。

有关API的完整参考,请参阅CircleCI API文档

重要事项当触发工作通过API

  • 由API触发的作业可能包含工作流程部分
  • 你的工作流程必须引用用API触发的作业
  • 通过API触发的作业执行有机会为创建环境变量CircleCI上下文
  • 如果您希望使用环境变量,则必须在项目级别
  • 如果使用CircleCI 2.1和工作流,目前不可能触发单个作业
  • 有可能触发工作流程使用CircleCI API: a单一工作流可以重新运行,或者你可以触发一个管道它将运行其后续工作流。

有条件正在运行的任务有了API

下一个示例演示用于构建docker映像的配置setup_remote_docker仅适用于应该部署的构建。

版本:2工作:建立:码头工人:-图像:红宝石:2.4.0,杰西AUTH:用户名:mydockerhub-user密码:$ DOCKERHUB_PASSWORD#上下文/项目UI env-var引用环境:LANG:C.UTF-8working_directory:/我的项目并行性:2脚步:-结帐-运行:echo“运行一些测试”-部署:的名字:有条件地运行部署工作命令:|#你构建/部署检查更换本(即当前分支是“释放”)如果属实 ]];然后curl——user ${CIRCLE_API_USER_TOKEN}: \——数据build_parameters [CIRCLE_JOB] = deploy_docker ' \——数据修订= $ CIRCLE_SHA1 \//www.drag240sx.com/api/v1.1/project/github/ CIRCLE_PROJECT_USERNAME / CIRCLE_PROJECT_REPONAME美元/树/ CIRCLE_BRANCH美元fideploy_docker:码头工人:-图像:红宝石:2.4.0,杰西AUTH:用户名:mydockerhub-user密码:$ DOCKERHUB_PASSWORD#上下文/项目UI env-var引用working_directory:/脚步:-setup_remote_docker-运行:echo“部署部分运行”

以上例子的说明:

  • 使用部署步骤中的构建作业对于防止触发N次构建非常重要,其中N是并行度值-部署是只在一个容器上运行的特殊步骤,即使将作业并行度设置为大于该容器。
  • 我们使用API调用build_parameters [CIRCLE_JOB] = deploy_docker因此,只有deploy_docker将运行job。

另请参阅

触发器