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

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

Другие вопросы по тегам