LINUX.ORG.RU

Помогите с GitLab CI и matrix

 ,


0

1

Всем здарова.

Имею такой код на CI:

stages:
  - build
  - publish

image: gcc:latest

build_job:
  stage: build
  script:
    - gcc --version
    - echo "Compiling the project ${BUILD_TARGET}..."
    - g++ -o ${BUILD_TARGET}_program main.cpp
  parallel:
    matrix:
      - BUILD_TARGET: [foo, bar]
  artifacts:
    paths:
      - ${BUILD_TARGET}_program
    expire_in: 1 day
  when: manual

publish_job:
  stage: publish
  needs:
    - build_job
  script:
    - echo "Running tests ${BUILD_TARGET}..."
    - ./${BUILD_TARGET}_program
  parallel:
    matrix:
      - BUILD_TARGET: [foo, bar]
  when: manual

Т.е. тут на 1-ом шаге собираются два таргета foo и bar, а затем на 2-ом шаге эти таргеты выполняются (ну, в реале должны копироваться куда-то там, но сейчас не важно).

Все делается вручную (так надо).

Так вот, я ожидал, что после того как я нажму на «build» таргет foo, и после успешной его сборки, я смогу далее нажмать и на «publish» этого таргета foo. Но, при нажатии на «publich» - ничего не происходит, этот шаг так и остается в состоянии skipped

Я могу нажать на «publish» таргетов foo или bar только после того, как ВСЕ эти таргеты были собраны…

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

Как это сделать, и возможно ли? Помогите, кто нить, не понимаю, куда надо копать, гуглил уже, и ничо толкового не нагуглил.

PS: А этот гугловский ББ тупой аки пробка, выдает какую то не работающую дичь.

★★

Кажется это оно

stages:
  - build
  - publish

image: gcc:latest

build_job:
  stage: build
  script:
    - gcc --version
    - echo "Compiling the project ${BUILD_TARGET}..."
    - g++ -o ${BUILD_TARGET}_program main.cpp
  parallel:
    matrix:
      - BUILD_TARGET: [foo, bar]
  artifacts:
    paths:
      - ${BUILD_TARGET}_program
    expire_in: 1 day
  when: manual

publish_job:
  stage: publish
  needs:
    - job: build_job
      parallel:
        matrix:
          - BUILD_TARGET: ['$[[ matrix.BUILD_TARGET ]]']
  script:
    - echo "Running tests ${BUILD_TARGET}..."
    - ./${BUILD_TARGET}_program
  parallel:
    matrix:
      - BUILD_TARGET: [foo, bar]
  when: manual
kuzulis ★★
() автор топика