我需要从CirlceCI 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配置验证-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
请您帮助我了解问题出在哪里以及需要进行哪些修改。
谢谢, M
答案 0 :(得分:0)
CircleCI 2.0不赞成您使用某些选项,而需要其他选项。
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