Якоря YAML в конвейерах битбакета

Я пытаюсь написать конвейер битбакета и использовать якоря YAML для уменьшения повторение.

Вот пример того, что я хотел бы сделать:

---

definitions:
  steps:
    - step: &build-test-alpine
        image: php:7.4-alpine
        caches:
          - composer
        script:
          - apk add unzip curl
          - curl -sS https://getcomposer.org/installer | php -- --install-dir='/usr/local/bin' --filename='composer'
          - composer --no-ansi -n install
          - composer --no-ansi -n test

pipelines:
  custom:
    deploy:
      - step:
          name: Build and deploy application
          <<: *build-test-alpine
          script:
            - Some other command to execute

  default:
    - step:
        <<: *build-test-alpine
        name: PHP 7.4
    - step:
        <<: *build-test-alpine
        image: php:7.3-alpine
        name: PHP 7.3

...

Конечно, это не работает (см. Настраиваемый шаг развертывания). Нельзя определить другой элемент сценария и ожидать, что он объединит его со сценарием привязки. Есть ли способ сделать это?


person Darko Miletic    schedule 01.12.2020    source источник


Ответы (1)


Возможно, вы сможете поместить свой Some other command to execute скрипт в after-script. Что-то вроде этого:

definitions:
  steps:
    - step: &build-test-alpine
        image: php:7.4-alpine
        caches:
          - composer
        script:
          - apk add unzip curl
          - curl -sS https://getcomposer.org/installer | php -- --install-dir='/usr/local/bin' --filename='composer'
          - composer --no-ansi -n install
          - composer --no-ansi -n test

pipelines:
  custom:
    deploy:
      - step:
          name: Build and deploy application
          <<: *build-test-alpine
          after-script:
            - Some other command to execute

  default:
    - step:
        <<: *build-test-alpine
        name: PHP 7.4
    - step:
        <<: *build-test-alpine
        image: php:7.3-alpine
        name: PHP 7.3
person Faramarz Phorozan    schedule 07.02.2021
comment
К сожалению, среда не сохраняется между сценарием и последующим сценарием, поэтому для меня это не работает. - person Darko Miletic; 08.02.2021