#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 являются стандартными, например, выполняемыми на вашем компьютере.