我正在尝试通过bitbucket管道将我的webapp部署到firebase主机上,它在管道中部署不正确,但在控制台中工作没有问题。这是我在控制台中做的事情:
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主机上,但它在实际的域中根本不起作用。
发布于 2021-05-13 01:57:50
当您运行应该生成令牌的命令firebase login:ci时,您可以将该令牌添加到Repository Settings > Repository Variables的Bitbucket中。无论您选择什么名称,都应该与您的管道相匹配。在我的示例中,我使用了FIREBASE_TOKEN_CI。当我将我的更改提交到bitbucket时,它会运行管道、构建和部署。
您可以随时在package.json中修改脚本,以便在cli中可以像运行npm run start
一样运行npm run build:prod
,等等,并在yml中使用build:prod。下面是一个示例:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build:prod": "ng build --prod=true"
}
下面的代码是我用于离子/角度注释的pipeline.yml :工件是在运行build之后生成构建文件的文件夹。Angular称为dist,因此您可以使用dist/。我的示例使用www/**,即离子构建输出。你在你的例子中有一些CI=False,我没有见过,也没有使用过,我的项目会构建和部署。我的第二个脚本是用于云函数的
- cd functions
- npm install
- cd ..
如果你没有函数,你可以省略这部分。我最近遇到了一个关于OAuth的错误,我不得不用login生成一个新的令牌:ci并替换我的令牌,它又可以用于deploy了。希望这对任何人都有帮助。我一开始也遇到了问题,找到了一种我可以适应其他框架的工作格式。
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'
https://stackoverflow.com/questions/64239259
复制