Проблема конфигурации Bitbucket Pipelines - PullRequest
0 голосов
/ 15 февраля 2019

После добавления якорей в мой файл bitbucket-pipelines.yml я получил:

ОШИБКА КОНФИГУРАЦИИ В разделе «master» в вашем файле bitbucket-pipelines.yml отсутствует «шаг».Пожалуйста, добавьте пропущенный «шаг», чтобы исправить ошибку.

Но, согласно https://bitbucket -pipelines.prod.public.atl-paas.net / validator , конфигурация VALID

image: node:latest
definitions:
  caches:
    node: ./node_modules
  steps:
    - step: &Test-step
        name: Run tests
        script:
          - npm install
          - npm run test
    - step: &Deploy-step
        caches:
          - node
        script:
          - sh bin/pipeline/backend-url-replace.sh
          - npm run build
          - sh bin/pipeline/deployment.sh
    - step: &E2E-step
        name: E2E tests
        caches:
          - node
        image: cypress/base:10
        script:
          - set +e; npm run cy:test
          - sh bin/pipeline/cypress-media-cp.sh
pipelines:
  branches:
    master:
      - step: *Test-step
      - step:
        <<: *Deploy-step
        name: Deploy to Test
        deployment: test
      - step:
        <<: *Deploy-step
        name: Deploy to Staging
        trigger: manual
        deployment: staging
    release/*:
      - step: *Test-step
      - step:
        <<: *Deploy-step
        name: Deploy to Staging
        deployment: staging

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

@ AndroidNoobie решает вашу проблему, но не объясняет, что происходит.

В ваших определениях вы указываете отображение, которое является значением для step:

- step: &Deploy-step
    caches:
      - node
    script:
      - sh bin/pipeline/backend-url-replace.sh
      - npm run build
      - sh bin/pipeline/deployment.sh

, т.е.ключи caches и script имеют больший отступ, чем step, это не зависит от того, есть якорь или нет.Так что это элемент последовательности, который отображается с одним ключом step.

Если вы напишите:

- step: 
  caches:
    - node
  script:
    - sh bin/pipeline/backend-url-replace.sh
    - npm run build
    - sh bin/pipeline/deployment.sh

, который является допустимым YAML, ваш элемент последовательности снова является отображением, нотеперь он имеет три клавиши step, caches и script.Значение step равно null (там может быть якорь, который не имеет значения).

И это то, что у вас есть в разделе pipelines.Ваш ключ слияния << не является первым ключом в отображении (и не должен быть).

Это делает, например, самый последний элемент в вашем примере отображением с пятью значениями вместосопоставление с одним ключом rest, и значение для этого ключа - сопоставление с четырьмя ключами, и это то, что вам нужно.

0 голосов
/ 15 февраля 2019

Иногда кажется, что это происходит из-за проблем с отступами.

Возможно, вам придется увеличить отступ ваших списков под каждым step до четырех пробелов (в настоящее время это два):

pipelines:
  branches:
    master:
      - step: *Test-step
      - step:
          <<: *Deploy-step
          name: Deploy to Test
          deployment: test
      - step:
          <<: *Deploy-step
          name: Deploy to Staging
          trigger: manual
          deployment: staging
    release/*:
      - step: *Test-step
      - step:
          <<: *Deploy-step
          name: Deploy to Staging
          deployment: staging
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...