Запуск развертывания Firebase после успешного процесса CI семафора

#firebase #continuous-integration #firebase-hosting #semaphore-ci

#firebase #непрерывная интеграция #firebase-хостинг #семафор-ci

Вопрос:

Я следую руководству Firebase по непрерывной интеграции.

В своем примере они используют travis, мой выбор CI — Semaphore Co. Я застрял на firebase deploy --token $FIREBASE_TOKEN шаге, так как, похоже, не могу найти способ запустить это каким-либо образом после успешного выполнения в семафоре. У них есть after job, но оно также запускается при неудачных сборках, из-за этого я не хочу развертывать с помощью этого шага, я хочу развертывать только после прохождения всех тестов / сборок.

Ответ №1:

Семафор экспортирует несколько переменных среды, которые вы можете использовать для условного выполнения команд, аналогично тому, как вы это делаете $FIREBASE_TOKEN .

Поэтому, если вы хотите добавить команду after job, вы можете проверить статус задания, и если оно выполнено успешно, вы можете выполнить команду deploy, в противном случае нет. Такая команда должна выглядеть:

 if [ "$SEMAPHORE_THREAD_RESULT" = "passed" ]; then firebase deploy --token $FIREBASE_TOKEN ; fi
  

В той же системе вы можете добавить имя ветки в оператор «if» и запустить развертывание, только если вы, например, находитесь на «главном» плече и если сборка передана. Более подробную информацию обо всех доступных переменных env вы можете найти здесь/

В качестве альтернативы вы можете проверить систему развертывания сборки Semaphore, которая в основном представляет собой отдельное задание, которое запускается после завершения сборки (и передачи). Более подробную информацию об этом вы можете найти в официальных документах.

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

1. Эй, rfirebase бит — это опечатка?

2. Да, извините. Semaphore выполняет все команды в стандартном bash, так что оператор if и команда развертывания firebase являются стандартными, например, выполняемыми на вашем компьютере.