circleci-2.0 - CircleCI 迁移:配置文件
问题描述
我需要从 CirclceCI 1.0 迁移到 2.0 我正在尝试按照他们文档中提到的步骤进行操作。但无法获得正确的配置文件。我的 1.0 版文件如下所示:
## Customize the test machine
machine:
timezone:
America/New_York # List of timezones http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Version of ruby to use
ruby:
version:
2.3.1
## Customize database setup
database:
override:
# replace Circle's generated database.yml
- cp config/database.yml.ci config/database.yml
- bundle exec rake db:create db:schema:load --trace
test:
minitest_globs:
- test/**/*_test.rb
steps:
- checkout
- post:
- mkdir -p tmp
要迁移到版本 2,所做的修改是:
version: 2
## Customize the test machine
jobs:
build:
timezone:
America/New_York # List of timezones http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Version of ruby to use
docker:
- image: circleci/ruby:2.3-jessie
## Customize database setup
database:
- override:
# replace Circle's generated database.yml
- cp config/database.yml.ci config/database.yml
- bundle exec rake db:create db:schema:load --trace
test:
- minitest_globs:
- test/**/*_test.rb
steps:
- checkout:
- run: mkdir -p tmp
在执行 CLI 命令进行验证时,如下所示: circleci config validate -c .circleci/config.yml 我收到错误:错误:发生 3 个错误:
* Error migrating config to version 2: 2 errors occurred:
* in job 'build': steps is not a list
* in job 'build': steps is not a list
* Config file is invalid:
at jobs: steps: steps is required
at jobs: timezone: Additional property timezone is not allowed
at jobs: jobs: Invalid type. Expected: object, given: array
at jobs: jobs: Invalid type. Expected: object, given: array
at jobs: jobs: Invalid type. Expected: object, given: array
* Error in config file: The schema/shape of the YAML is incorrect: json: cannot unmarshal array into Go value of type config.JobDescription
请求您帮助我了解哪里出错以及需要进行的修改。
谢谢,米
解决方案
CircleCI 2.0 弃用了您正在使用的一些选项,并需要其他选项。
- 时区设置为环境变量
- 数据库被声明为附加的 docker 镜像
- 所有活动都发生
steps
在job
F
version: 2
jobs:
build:
# Version of ruby to use
docker:
- image: circleci/ruby:2.3-jessie
environment:
TZ: "/usr/share/zoneinfo/America/Los_Angeles"
- image: circleci/postgres:9.6.2-alpine
environment:
TZ: "/usr/share/zoneinfo/America/Los_Angeles"
POSTGRES_USER: root
POSTGRES_DB: circle-test_test
steps: # run inside primary (ruby) container, with access to secondary (DB) container as localhost:db-port
- checkout
- run:
name: Database Migration/Setup
command: bundle exec rake db:create db:schema:load --trace
- run:
name: Execute Tests
command: rspec test/**/*_test.rb # change to appropriate testing commands
推荐阅读
- php - 有没有办法用嘲讽来模拟私有静态方法?
- python - 具有信号之间相关性的综合多元时间序列数据
- java - Eclipse maven 启动“遇到问题”没有选择的资源
- scala - Scala:来自子类的伴生对象
- android - 从 android 应用程序的 websocket 恢复所有传入消息
- javascript - 如果“a”标签在反应中有一些子元素,则 onClick 无法正常工作
- gitlab - 如何在 GitLab CI 上获取 Ubuntu VM
- android - Android checkSelfPermission() 中的“this”指的是什么?
- node.js - 在 iOS Swift 应用程序中使用 JWT 真的安全吗?
- java - 如何在其他屏幕上移动 JFrame?