[英]Im having trouble while serving or deploying Firebase Hosting Functions
[英]Deploying to Firebase Hosting using CircleCI
我正试图弄清楚如何使用CircleCI部署到Firebase Hosting。 据我所知,没有办法使用SSH密钥设置部署,所以我试图找到一种在部署期间登录Firebase并推送代码的方法。 我到目前为止所尝试的是我的circle.yml中的以下内容:
// circle.yml
deployment:
production:
branch: circle-deploy
commands:
- npm install -g firebase-tools
- firebase login | echo -e "${FIREBASE_EMAIL}\n${FIREBASE_PASSWORD}"
- firebase deploy
但是,我一直收到以下错误,我不知道如何解决它。
stream.js:94
throw er; // Unhandled stream error in pipe.
^
Error: write EPIPE
at errnoException (net.js:904:11)
at Object.afterWrite (net.js:720:19)
我只需要这样做,有一个更简单的方法
在您的计算机上,您可以通过键入来获取访问令牌
firebase login:ci
$FIREBASE_TOKEN
对于部署步骤,您可以跳过登录:
deployment: production: branch: master commands: - firebase deploy --token=$FIREBASE_TOKEN --non-interactive
上面其他答案的一小部分......
为了避免在每个构建的circle ci中全局安装firebase-tools:
修改你的package.json文件,将firebase-tools包含为dev依赖项,如下所示:
npm install --save-dev firebase-tools
然后在你的circle.yml文件中:
deployment:
production:
branch: master
commands:
- ./node_modules/.bin/firebase deploy --token=$FIREBASE_TOKEN --non-interactive
对于偶然发现这个问题的其他人来说,这些是我必须采取的步骤,以使CircleCI(以及可能是任何其他CI)与Firebase Hosting一起工作。
firebase login:ci
FIREBASE_TOKEN
) firebase deploy --token=$FIREBASE_TOKEN --non-interactive
Firebase最近添加了login:ci
以防止人们使用个人部署令牌进行CI服务。
这是我的初始设置,仅部署master,跳过测试
//circle.yml
general:
branches:
only:
- master
test:
override:
- echo "test"
deployment:
production:
branch: master
commands:
- npm install -g firebase-tools
- firebase deploy --token=$FIREBASE_TOKEN --non-interactive
以下是我们部署到CircleCi的过程。
将您的用户名和密码存储为CircleCi中项目级别的环境变量。
编辑你的circle.yml
deployment: production: branch: your_branch commands: - npm install -g firebase-tools - firebase login --email $FIREBASE_USERNAME --password $FIREBASE_PASSWORD - firebase deploy
推送到您的分支机构
似乎工作正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.