使用CircleCI本地CLI

概观

该CircleCI CLI是一个命令行界面,它利用许多CircleCI的先进和强大的工具,从终端的舒适性。一些可以与CircleCI CLI做的事包括:

  • 调试和验证您的CI配置
  • 本地运行工作
  • 查询CircleCI的API
  • 创建,发布,查看和管理宝珠
  • 管理环境

该文件将涵盖CLI工具的安装和使用。注意:新的CLI是目前不提供下载CircleCI的服务器安装。遗留CLI不工作的服务器,可以安装。

安装

有CLI的多种安装选项。

注意:如果您已经之前2018月安装了CLI,你可能需要做一个额外的一次性步骤切换到新的CLI。看到下面的升级说明

对于大多数安装,我们推荐以下包管理器来安装CircleCI CLI中的一种:

与捕捉安装(Linux的)

以下命令将安装CircleCI CLI,码头工人,并与一起去的安全性和自动更新功能捕捉包

须藤安装泊坞窗circleci须藤卡扣连接circleci:码头工人码头工人

注意:带卡套餐,搬运工命令将使用泊坞窗扣,你可能以前安装不会码头工人的任何版本。为了安全起见,卡包只能读/写文件从$ HOME内。

安装家酿用(MACOS)

如果您在使用家酿和MacOS,您可以安装使用以下命令执行以下命令:

酿造安装circleci

注意:如果你已经有码头工人的Mac安装,使用BREW安装 - 忽略依赖circleci

用的巧克力安装(Windows)中

对于Windows用户,我们提供了一个巧克力味包:

巧克力安装circleci-CLI-y

另类安装方法

Mac和Linux:

卷曲-fLSshttps://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh |庆典

默认情况下,CircleCI CLI工具将被安装到在/ usr / local / bin目录目录。如果你没有写权限在/ usr / local / bin目录,您可能需要运行上述命令须藤。或者,也可以通过定义安装到备用位置DESTDIR调用Bash当环境变量:

卷曲-fLSshttps://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh |DESTDIR=/选择/斌庆典

手册下载

您可以访问GitHub上发布为CLI手动下载并安装页面。这种方法是最好的,如果你想安装的CLI在你的系统上的具体路径。

更新CLI

您可以更新使用以下命令CLI的最新版本:circleci更新。如果你只是想手动检查更新(而不是安装它们)使用命令:circleci更新检查

更新传统的CLI

CLI中的最新版本是CircleCI-公共开源项目。如果你有安装旧CLI,运行以下命令来更新和转换到新的CLI:

circleci更新circleci开关

该命令可能会提示您须藤如果你的用户不具有写权限安装目录,在/ usr / local / bin目录

配置的CLI

使用CLI之前,您需要生成从一个CircleCI API令牌个人API令牌标签。当您得到您的令牌,配置通过运行命令行:

circleci设置

设置过程会提示你输入配置设置。如果您使用的是带有www.drag240sx.com CLI中,使用默认的CircleCI主机。如果您正在使用CircleCI服务器,将值更改为您的安装地址(例如,circleci.your-org.com)。

验证CircleCI配置

您可避免推额外提交使用CLI在本地验证你的配置来测试你的config.yml。

为了验证你的配置,导航到一个目录.circleci / config.yml文件并运行:

circleci配置验证在.circleci / config.yml有效#配置文件

如果你正在使用宝珠您也可以验证您的天体:

circleci宝珠验证/tmp/my_orb.yml

当上述命令将查找称为宝珠my_orb.yml在里面/ tmp目录夹在其中运行该命令的目录。

宝珠开发工具包

ORB开发套件指的是一整套工具,一起工作,以简化ORB的开发过程,对CircleCI自动测试和部署。两个CLI命令都包含在ORB开发套件:circleci ORB的initcircleci宝珠包。有关ORB包装的更多信息,请参阅宝珠概念指南

包装一个配置

CLI提供一circleci配置包命令(独立于circleci宝珠包如上所述),使您可以创建几个单独的文件一个YAML文件中。该命令工具FYAML,打破YAML文件跨文件在目录树的方案。这是特别有用分手源代码,大球体,并允许您的球体YAML配置的定制组织。circleci配置包文件树转换成基于目录结构和文件内容的单个YAML文件。你怎么名称组织使用时,您的文件命令将决定最终的输出orb.yml。请看下面的例子文件夹结构:

$└──您-ORB源├──@ orb.yml├──命令│└──foo.yml└──职位└──bar.yml 3个目录,3个文件

UNIX的命令是伟大的,打印出来的文件夹结构。在该示例中树结构上,所述命令将映射的文件夹名和文件名YAML键和文件内容为这些按键。让我们向上从上面的例子中的文件夹:

$circleci配置包你-ORB源
#@内容orb.yml出现在这里命令FOO#foo.yml的内容出现在这里职位酒吧#bar.yml的内容出现在这里

其他配置包装能力

一个文件年初@将其内容合并到它的父文件夹中。这可能是在球体的顶层是有用的,当一个人可能希望通用orb.yml包含元数据,但不映射到ORB键 - 值对。

从而:

$foo/bar/@baz.yml{巴兹:qux}

映射到:

酒吧巴兹qux

为例盒装Config.yml

查看CircleCI宝珠GitHub的话题标签看到使用多个YAML源文件书面球体的例子。circleci配置包典型地运行,因为这些项目的CI / CD工作流的一部分,以用于发布ORB准备源代码。

处理的配置

运行circleci配置过程验证你的配置,也将显示扩展源配置旁边你原来的配置(有用的,如果你使用的是球体)。

考虑到使用的示例配置你好,构建ORB:

版本:2.1宝珠:您好:circleci/hello-build@0.0.5工作流程:“你好工作流程”:工作: - 你好/您好建造

运行circleci配置过程.circleci / config.yml将输出下面(其是扩充源和原始配置注释的混合)。

#宝珠“circleci/hello-build@0.0.5”决心“circleci/hello-build@0.0.5”版本:2职位:你好/您好建造:泊坞窗: - 图像:circleci / buildpack-DEPS:卷曲的浏览器身份验证:用户名:mydockerhub用户密码:$ DOCKERHUB_PASSWORD#背景/项目UI ENV-VAR参考步骤: - 运行:命令回声“你好$ {CIRCLE_USERNAME}- 跑:命令:|  -回声“TRIGGERER:$ {CIRCLE_USERNAME}回声“BUILD_NUMBER:$ {CIRCLE_BUILD_NUM}回声“BUILD_URL:$ {CIRCLE_BUILD_URL}回声“科:$ {CIRCLE_BRANCH}回声“正在运行的作业:$ {CIRCLE_JOB}回声“JOB平行度:$ {CIRCLE_NODE_TOTAL}回声“CIRCLE_REPOSITORY_URL:$ {CIRCLE_REPOSITORY_URL}名称:显示一些CircleCI运行时ENV瓦尔 - 运行:命令:|  -回声“UNAME:”$(UNAME-一种回声“拱”$(名称:显示系统信息工作流程:您好工作流程:职位- 你好/ HELLO-Build版本:2#原始config.yml文件:#版本:2.1#宝珠:#你好:circleci/hello-build@0.0.5# 工作流程:#\ “你好工作流程\”:# 职位:# - 你好/您好建造

运行作业在容器中,您的机器

概观

该CLI使您能够通过多克你的配置运行作业。这可以是运行推动配置的变化或不影响您的构建队列调试你的构建过程之前的测试非常有用。

先决条件

你需要有搬运工人在系统上安装和已安装CLI工具的最新版本。您还需要有一个项目,一个有效.circleci / config.yml文件中了。

运行作业

CLI允许您使用泊坞在桌面上运行,从CircleCI一个作业。

$circleci本地执行- 工作JOB_NAME

如果您CircleCI配置设置为2.1或更高版本,必须先将配置导出到process.yml和执行时指定它:

circleci配置过程.circleci / config.yml>process.yml circleci本地执行-Cprocess.yml- 工作JOB_NAME

让我们对CircleCI的演示应用程序运行一个我们本地机器上的例子编译:

混帐克隆https://github.com/CircleCI-Public/circleci-demo-go.git光盘circleci-DEMO-GO circleci本地执行- 工作建立

上述命令将运行整个建立作业(只工作,不工作流,可以在本地运行)。该CLI将使用泊坞窗拉下了构建的需求,然后会在本地执行的CI步骤。在这种情况下,Golang和Postgres泊坞窗图像拉低,使编译安装的依赖,运行单元测试,测试服务运行等。

本地运行作业的局限性

虽然与在本地运行的作业circleci是非常有帮助的,有一定的局限性。

机执行人

不能使用在本地工作的机器执行。这是因为机器执行需要额外的虚拟机来运行其作业。

添加SSH密钥

这是目前无法添加使用SSH密钥add_ssh_keysCLI命令。

工作流程

该CLI工具不提供对运行的工作流的支持。从本质上讲,工作流运行杠杆作业同时在多台机器让您实现更快,更复杂的构建。因为CLI只是你的机器上运行,它只能跑单职位(其组成工作流的部分)。

缓存和在线仅命令

缓存目前不支持在当地就业。当你有一张save_cache要么restore_cache步骤在你的配置,circleci会跳过他们,并显示警告。

此外,并非所有命令可以在本地机器上工作,因为他们在网上做。例如,在上述奔跑一个Golang构建参考store_artifacts一步,然而,本地编译不会上传文物。如果某个步骤上没有一个地方共建,你会在控制台中看到一个错误。

环境变量

出于安全原因,在UI配置加密的环境变量将不会被导入到本地建立。作为替代方案,您可以指定ENV瓦尔与该CLI-e旗。见输出circleci帮助建立想要查询更多的信息。如果您有多个环境变量,你必须使用标志为每个变量,例如,circleci构建-e VAR1 = FOO -e VAR2 = BAR

测试拆分

该CircleCI CLI也是在作业运行用于一些高级功能,例如测试分裂为构建时间的优化。

使用CircleCI服务器上的CLI

目前,只有传统CircleCI CLI可对CircleCI的服务器安装运行。要安装在Mac OS和其他Linux发行版遗留CLI:

  1. 安装和使用配置泊坞窗泊坞窗安装说明
  2. 要安装CLI,运行以下命令:

$卷曲-o在/ usr / local / bin目录/ circleci https://circle-downloads.s3.amazonaws.com/releases/build_agent_wrapper/circleci &&使用chmod + X的/ usr / local / bin目录/ circleci

该CLI,circleci,被下载到在/ usr / local / bin目录目录。如果你没有写权限在/ usr / local / bin目录,你可能需要运行上述命令须藤。该CLI自动检查更新,并会提示你,如果一个是可用的。

上下文管理

上下文为保护和跨项目共享的环境变量的机制。虽然环境对CircleCI Web应用程序被传统管理中,CircleCI CLI提供用于管理上下文的使用在项目中的替代方法。通过CLI,您可以执行多个面向环境的命令:

  • 创建- 创建一个新的上下文
  • 删除- 删除命名上下文
  • 名单- 列出所有上下文
  • 删除机密- 从命名上下文中删除一个环境变量
  • 节目- 显示上下文
  • 商店的秘密- 存储在指定上下文中的新环境变量。该值是从标准输入读取。

上面的列表是“子命令”中的CLI,这将像这样被执行:

circleci环境中创建#返回以下内容:列出所有上下文用法:circleci上下文列表 <组织名称>[标志]

许多命令会要求你包含额外的信息由分隔的参数指示<>

与大多数CLI的命令,你就需要有正确验证您的CLI的版本令牌,使执行上下文相关的动作。

卸载

对于卸载CircleCI CLI会根据您的安装方法是用什么分别有所不同的命令:

  • 卷曲安装命令: 除掉circleci从可执行USR / local / bin目录
  • 安装家酿的Mac: 跑BREW卸载circleci
  • Linux上的卡扣安装: 跑扣执行sudo删除circleci