yaml: не нашел ожидаемый ключ
- Ошибка разбора файла конфигурации: yaml: строка 22: не найден ожидаемый ключ
- Не могу найти работу по имени
build
бежать вjobs:
раздел вашего файла конфигурации.
Я получил эти ошибки, но я действительно новичок в yaml, поэтому я не могу найти причины, почему это не работает. есть идеи? Некоторые говорят, что там могут быть лишние пробелы или что-то, но я не могу найти это.
файл yaml
defaults: &defaults:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
- v1-dependencies-
- run: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}
version: 2
jobs:
build:
docker:
- image: circleci/node:10.3.0
working_directory: ~/repo
steps:
<<: *defaults // << here
- run: npm run test
- run: npm run build
deploy:
docker:
- image: circleci/node:10.3.0
working_directory: ~/repo
steps:
<<: *defaults
- run:
name: Deploy app scripts to AWS S3
command: npm run update-app
workflows:
version: 2
build-deploy:
jobs:
- build
- deploy:
requires:
- build
filters:
branches:
only: master
3 ответа
То, что вы пытаетесь сделать, это пытаться объединить две последовательности. т.е. все элементы по умолчанию объединены в шаги. Что не поддерживается в спецификации YAML. Только вы можете объединять карты и вложенные последовательности.
Это неверно:
steps: <<: *defaults - run:
как <<: для объединения элементов карты, а не последовательностей
Если вы делаете это:
step_values: &step_values
- run ...
steps: - *defaults - *step_values
В итоге вы получите вложенные последовательности, что не соответствует вашим намерениям.
Пока это невозможно . К сожалению, единственный выход - повторить весь список. Многие пользователи запрашивают ту же функцию .
похоже, ваш YAML написан неправильно. Вы всегда можете проверить проверку структуры YAML на веб-сайте с открытым исходным кодом, например http://www.yamllint.com/.
При проверке файла yaml в строке 22 вы делаете ошибку. Как объяснил Шрикант, вы пытаетесь объединить две последовательности. т.е. все элементы по умолчанию объединены в шаги. Что в настоящее время не поддерживается в YAML.
Только вы можете объединять карты и вложенные последовательности. Если вы сделаете это:
step_values: &step_values
- run ...
-----------------------------------------------
steps:
- *defaults
- *step_values
В итоге вы получите вложенные последовательности, а это не то, что вы намеревались.