在 Semaphore CI 进程成功后触发 Firebase 部署

Triggering Firebase deploy after successful Semaphore CI process

我正在关注Firebase tutorial on Continuous Integration

他们在他们的例子中使用了travis,我选择CI是Semaphore Co。我被困在 firebase deploy --token $FIREBASE_TOKEN 步骤,因为我似乎无法在信号量中的任何类型的成功后挂钩中找到触发它的方法。他们确实有 after job,但它也会在构建失败时触发,因此,我不想使用该步骤进行部署,我只想在所有测试/构建通过后进行部署。

Semaphore 正在导出一些环境变量,您可以使用这些变量来有条件地执行命令,就像您对 $FIREBASE_TOKEN 所做的那样。

所以如果你想在job命令之后添加,你可以查看job的状态,如果成功则可以执行deploy命令,否则不执行。这样的命令看起来像:

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

对于相同的系统,您可以将分支名称添加到 "if" 语句中,并且仅当您在 "master" 分支上并且构建通过时才触发部署。有关所有可用环境变量的更多信息,您可以 find here/

作为替代方案,您可以检查 Semaphore 的构建部署系统,它基本上是在构建完成(并通过)后触发的独立作业。有关更多信息,您可以找到 at official docs.