Node.js Firebase部署在控制台中工作,但不在bitbucket管道中工作
我正试图通过bitbucket管道将我的webapp部署到firebase主机,它在管道中没有正确部署,但在控制台中工作没有问题。这是我在控制台中执行的操作:Node.js Firebase部署在控制台中工作,但不在bitbucket管道中工作,node.js,firebase,bitbucket,bitbucket-pipelines,Node.js,Firebase,Bitbucket,Bitbucket Pipelines,我正试图通过bitbucket管道将我的webapp部署到firebase主机,它在管道中没有正确部署,但在控制台中工作没有问题。这是我在控制台中执行的操作: npm run build firebase login:ci firebase deploy --project $PROJECT_NAME 在管道中,我正在运行以下YAML脚本: image: node:10.15.3 pipelines: default: - step: name:
npm run build
firebase login:ci
firebase deploy --project $PROJECT_NAME
在管道中,我正在运行以下YAML脚本:
image: node:10.15.3
pipelines:
default:
- step:
name: Install and Build App
caches:
- node
script:
- npm install
- CI=false npm run build
artifacts:
- build/
- step:
name: Deploy App to Firebase
deployment: production
script:
- pipe: atlassian/firebase-deploy:0.6.0
variables:
KEY_FILE: $KEY_FILE
PROJECT_ID: $PROJECT_ID
我想这可能和firebaserc有关,但我不确定。这是.firebaserc:
firebase target:apply hosting $PROJECT_ID $DOMAIN
也许有人能解释一下为什么这不起作用,我是管道脚本新手,我不太明白问题所在,它成功地部署到firebase主机上,但在实际域上根本不起作用。当您运行命令firebase login:ci时,它应该生成一个令牌,您可以在存储库设置>存储库变量中的Bitbucket中添加该令牌。您选择的名称应该与管道匹配。在我的示例中,我使用FIREBASE\u TOKEN\u CI。当我将更改提交到bitbucket时,它将运行管道、构建和部署 您始终可以在package.json中修改脚本,以便在cli中运行
npm run build:prod
,就像运行npm run start
一样,并在yml中使用build:prod。
以下是一个例子:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build:prod": "ng build --prod=true"
}
下面的代码是一个pipeline.yml,我用于Ionic/Angular
注意:工件是运行构建后生成构建文件的文件夹。Angular称为dist,因此可以使用dist/。我的示例使用www/**即Ionics构建输出。在您的示例中,您有一些CI=False,我没有看到,也没有使用它,我的项目构建和部署。我的第二个脚本用于云函数
- cd functions
- npm install
- cd ..
如果没有函数,可以省略该部分。我最近在OAuth上遇到了一个错误,我不得不用login:ci生成一个新的令牌并替换我的令牌,它在部署时再次工作。希望这对任何人都有帮助。起初我也遇到了一些问题,找到了一种可以适应其他框架的工作格式
如果有人读到上面的答案,那就不必了。Bitbucket管道现在将发出警告FIREBASE_令牌因其遗留问题而被弃用。为了更好地验证,请使用google服务帐户密钥文件。希望它能帮助其他人。
image: node:10.15.3
pipelines:
default:
- step:
name: Install, Build
caches:
- node
deployment: test
script:
- npm install
- npm run build:prod
artifacts:
- www/**
- step:
name: Deploy to Firebase
deployment: production
script:
- cd functions
- npm install
- cd ..
- pipe: atlassian/firebase-deploy:0.3.4
variables:
FIREBASE_TOKEN: '$FIREBASE_TOKEN_CI'