高级配置

CircleCI支持许多高级配置选项和特性,请参阅下面的代码片段,了解哪些是可能的,并获得优化高级配置的提示。

检查你的脚本

使用shellcheck orb检查项目中的所有脚本。检查orb注册表中的shellcheck页面关于版本控制和进一步使用的例子(记住用一个有效的版本替换x.y.z):

版本:2.1球体:shellcheck:circleci / shellcheck@x.y.z工作流:shellcheck:工作:-shellcheck /检查

您也可以在版本2配置中使用shellcheck,而不使用orb,如下所示:

版本:2工作:shellcheck:码头工人:-图像:nlknguyen / alpine-shellcheck: v0.4.6身份验证:用户名:mydockerhub-user密码:DOCKERHUB_PASSWORD美元#上下文/项目UI env-var引用步骤:-结帐-运行:的名字:检查脚本命令:|找到。类型f -name '*。sh' | wc -l找到。类型f -name '*。sh' | xargs shell检查——外部源

有关在配置中使用shell脚本的更多信息,请参见使用Shell脚本指南。

浏览器测试

使用Selenium管理浏览器内tesing:

版本:2工作:构建:码头工人:-图像:circleci / node-jessie-browsers身份验证:用户名:mydockerhub-user密码:DOCKERHUB_PASSWORD美元#上下文/项目UI env-var引用步骤:-结帐-运行:mkdir测试报告-运行:的名字:下载Selenium命令:curl - o http://selenium-release.storage.googleapis.com/3.5/selenium-server-standalone-3.5.3.jar-运行:的名字:开始硒命令:java -jar selenium-server-standalone-3.5.3.jar -log测试报告/selenium.log背景:真正的

有关浏览器测试的更多信息,请参见浏览器测试指南。

数据库测试

使用服务容器运行数据库测试:

版本:2工作:构建:运行所有命令的主容器映像码头工人:-图像:circleci / python: 3.6.2-stretch-browsers身份验证:用户名:mydockerhub-user密码:DOCKERHUB_PASSWORD美元#上下文/项目UI env-var引用环境:TEST_DATABASE_URL:postgresql: / / root@localhost / circle_test#服务容器映像-图像:circleci / postgres: 9.6.5-alpine-ram身份验证:用户名:mydockerhub-user密码:DOCKERHUB_PASSWORD美元#上下文/项目UI env-var引用步骤:-结帐-运行:sudo apt-get更新-运行:安装postgresql-client-9.6-运行:显示本用户信息-运行:|psql \- d $ TEST_DATABASE_URL \"CREATE TABLE test (name char(25));"-运行:|psql \- d $ TEST_DATABASE_URL \-c“插入到测试值中('John'), ('Joanna'), ('Jennifer');”-运行:|psql \- d $ TEST_DATABASE_URL \-c“SELECT * from test”

有关配置数据库的更多信息,请参见配置数据库指南。

运行Docker命令来构建Docker镜像

运行Docker命令来构建Docker镜像。当你的主执行程序是Docker时,设置一个远程Docker环境:

版本:2工作:构建:码头工人:-图像:< primary-container-image >身份验证:用户名:mydockerhub-user密码:DOCKERHUB_PASSWORD美元#上下文/项目UI env-var引用步骤:#……构建/测试应用程序的步骤…-setup_remote_docker#设置远程docker容器,所有docker命令将在其中运行-运行:的名字:启动容器并验证它是工作的命令:|设置- xdocker-compose了-docker run——网络容器:联系人\适当的/curl—重试10—retry-delay 1—retry-connrefuse http://localhost:8080/contact/test

有关构建Docker映像的更多信息,请参见建设码头工人的图片指南。

高级配置提示

下面是一些优化和维护清晰配置文件的技巧。

  • 避免使用大型内联bash脚本,特别是在跨多个作业使用时。考虑将大型bash脚本迁移到repo中,以清理配置并提高可读性。
  • 工作区如果您不想执行完整的签出,可用于在作业之间复制外部脚本。
  • 将最快的工作移到工作流程的开始。例如,应该在长时间运行、计算开销更大的任务之前进行lint或语法检查。
  • 的“设置”作业开始可以帮助执行一些飞行前检查,并为以下所有作业填充一个工作空间。

另请参阅

优化配置食谱