Gitlab CI Pipeline работа - PullRequest
       4

Gitlab CI Pipeline работа

1 голос
/ 17 февраля 2020

Ниже приведен код конвейера Gitlab CI

  - image_build
  - test1
  - test2


image_build:
  stage: image_build
  tags:
    - ddc
  script:
    - echo "image build"
  rules:
    - changes:
      - Dockerfile

test1:
  stage: test1
  tags:
    - ddc
  script:
    - echo "Test1 stage"
  rules:
    - when: on_success

test2:
  stage: test2
  tags:
    - ddc
  script:
    - echo "Test2 stage"
  rules:
     - when: on_failure

Мне нужно выполнить этапы test1, test2, если в Dockerfile не было внесено никаких изменений. А также те же этапы test1, test2 не должны выполняться при наличии изменений в Dockerfile.

Второй сценарий работает нормально, но первый - нет. Пожалуйста, помогите мне запустить этот конвейер.

1 Ответ

1 голос
/ 20 февраля 2020

Если вы используете GitLab CI версии 11.4 или выше , вы можете использовать параметры only: changes или rules: changes. Основываясь на официальных документах:

Использование ключевого слова changes с only или except позволяет определить, следует ли создавать задание на основе файлов, измененных с помощью Git pu sh событие.


Так что ваши test1 и test2 этапы могут выглядеть следующим образом:

⋮

test1:
    stage: test1
    tags:
        - ddc
    script:
        - echo "Test1 stage"
    rules:
        - when: on_success
    except:
        changes:
            - Dockerfile


test2:
    stage: test2
    tags:
        - ddc
    script:
        - echo "Test2 stage"
    rules:
        - when: on_failure
    except:
        changes:
            - Dockerfile


⋮
...