# #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