Конвейер Gitlab не активируется с файлом .gitlab-ci.yml в корне репозитория

# #git #firebase #gitlab #gitlab-ci #gitlab-ci-runner

#git #firebase #gitlab #gitlab-ci #gitlab-ci-runner

Вопрос:

Я использую GitLab для своего CI / CD. У меня есть приложение Firebase, в котором я пытаюсь развернуть функции. Однако конвейер не активируется / не создается даже с .gitlab-ci.yml файлом. Я включил общие бегуны, мой код находится в моей ветке разработки, на которую я ссылаюсь в файле ci.

Моя структура папок выглядит следующим образом (с .gitlab-ci.yml файлом в корне репозитория):

 - .gitlab-ci.yml
- project
  - functions
    - ...
  - src
    - ...
  

Мой файл gitlab-ci.yml:

 image: node:12.13.0-alpine

variables:
  ENV: "dev"

before_script:
  - npm i -g firebase-tools

stages:
  - build
  - deploy

DeployFunctions:
  stage: deploy
  script:
    - cd project/functions
    - npm install
    - cd ..
    - firebase deploy --only functions --token $TBT_DEV_FIREBASE_CI
  only:
    refs:
      - dev
    changes:
      - functions/**/*
  

Когда я набираю файл с помощью GitLab CI Lint, и я набираю его, не выбирая опцию «Имитировать конвейер, созданный для ветви по умолчанию», синтаксис кажется правильным. Однако, когда я выбираю этот параметр, я получаю следующую ошибку:

 No stages / jobs for this pipeline.
  

Когда я добавляю Builder задание, то есть следующий блок, все работает нормально:

 ...

stages:
  - build
  - deploy

Builder:
  stage: build
  script:
    - echo "Commencing build"

DeployFunctions:
  stage: deploy
  script:

...
  

Это наводит меня на мысль, что я неправильно определяю DeployFunctions задание. Кто-нибудь может увидеть, что с ним не так?

Любая помощь очень ценится! Заранее спасибо!

Комментарии:

1. Возможно, вы отключили конвейеры в настройках?

2. Нет, конвейеры включены в настройках > Общие> Видимость, функции проекта, разрешения > Переключение конвейеров.

Ответ №1:

Тот факт, что конвейер не создается, заставляет думать, что это проблема с only: refs тегом. Я вставил ваш файл, синтаксис правильный.

Включен ли ваш файл CI в вашу ветку разработки? Насколько я понимаю, он должен работать до тех пор, пока .gitlab-ci.yml отслеживается в ветке разработки, и вы нажимаете на эту ветку. Вы все это сделали?

Комментарии:

1. Вы навели меня на правильный путь, но в итоге он оказался не только единственным: refs, но и блоком изменений. Я не смог заставить ни один из них работать.

2. Я наткнулся на аналогичную проблему несколько недель назад, у кого-то возникли проблемы с only: changes: тегом в сочетании с оператором подстановки, возможно, это поможет gitlab.com/gitlab-org/gitlab-foss/-/issues/59540

Ответ №2:

Я смог создать свои конвейеры после удаления некоторой конфигурации из моего файла .gitlab-ci.yml. В итоге я удалил весь only блок. Каким-то образом конфигурация под этим блоком была неправильной, включая changes блок под only , хотя ту же конфигурацию можно увидеть во многих примерах .gitlab-ci.yml.

 image: node:12.13.0-alpine

before_script:
  - npm i -g firebase-tools

stages:
  - deploy

DeployFunctions:
  stage: deploy
  script:
    - cd project/functions
    - npm install
    - cd ..
    - firebase deploy --only functions --token $DEV_FIREBASE_CI