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

person Phillip YS    schedule 02.08.2018    source источник
comment
См. также: stackoverflow.com/questions/24090177   -  person dreftymac    schedule 04.05.2019


Ответы (3)


Вы пытаетесь объединить две последовательности. т.е. все элементы по умолчанию объединены в шаги. Что не поддерживается в спецификации YAML. Только вы можете объединять карты и вложенные последовательности.

Это неверно:

steps:
  <<: *defaults
  - run:

как ‹<: для объединения элементов карты, а не последовательностей

Если вы сделаете это:

 step_values: &step_values
   - run ...
steps:
  - *defaults
  - *step_values

В итоге вы получите вложенные последовательности, а это не то, что вы намеревались.

person srikanth Nutigattu    schedule 02.08.2018

На данный момент это невозможно. К сожалению, единственный выход - повторить весь список. Многие пользователи запрашивают ту же функцию.

person pablorsk    schedule 26.03.2021

похоже, ваш YAML написан неправильно. Вы всегда можете проверить проверку структуры YAML на веб-сайте с открытым исходным кодом, например http://www.yamllint.com/.

При проверке файла yaml в строке 22 вы делаете ошибку. Как объяснил Шрикант, вы пытаетесь объединить две последовательности. т.е. все элементы по умолчанию объединены в шаги. Что в настоящее время не поддерживается в YAML.

Только вы можете объединять карты и вложенные последовательности. Если вы сделаете следующее:

 step_values: &step_values
   - run ...
-----------------------------------------------
    steps:
      - *defaults
      - *step_values

В итоге вы получите вложенные последовательности, а это не то, что вы намеревались.

person Moi    schedule 16.04.2021