GitHub Action部署Angular应用至Firebase时遇交互卡顿求助
无交互完成GitHub Action部署Angular到Firebase的配置
要解决部署时卡在交互步骤的问题,核心是通过Firebase服务账号密钥实现无身份验证,全程无需手动交互。具体步骤如下:
1. 获取Firebase服务账号密钥
- 打开Firebase控制台,进入目标项目
- 点击右上角设置图标 → 「项目设置」→ 「服务账号」标签页
- 点击「生成新的私钥」,下载JSON格式的密钥文件,妥善保存
2. 将密钥存入GitHub仓库Secrets
- 进入你的GitHub仓库,依次点击「Settings」→「Secrets and variables」→「Actions」
- 点击「New repository secret」,命名为
FIREBASE_SERVICE_ACCOUNT,将下载的JSON文件内容完整粘贴到输入框,保存
3. 修改GitHub Action配置文件(actions.yml)
以下是两种可行的配置方案,选其一即可:
方案一:直接使用firebase-cli命令
name: 部署Angular到Firebase on: push: branches: [ main ] # 触发部署的分支,按需修改 jobs: build-deploy: runs-on: ubuntu-latest steps: - name: 拉取代码 uses: actions/checkout@v4 - name: 配置Node环境 uses: actions/setup-node@v4 with: node-version: '20' # 匹配你的Angular项目所需Node版本 - name: 安装依赖 run: npm install - name: 构建Angular项目 run: npm run build --prod # 若使用Angular 16+,可改为--configuration production - name: 安装Firebase CLI run: npm install -g firebase-tools - name: 无交互部署到Firebase run: firebase deploy --project 你的Firebase项目ID --non-interactive env: FIREBASE_TOKEN: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
方案二:使用官方Firebase Action(更简洁)
name: 部署Angular到Firebase on: push: branches: [ main ] jobs: build-deploy: runs-on: ubuntu-latest steps: - name: 拉取代码 uses: actions/checkout@v4 - name: 配置Node环境 uses: actions/setup-node@v4 with: node-version: '20' - name: 安装依赖并构建项目 run: | npm install npm run build --prod - name: 部署到Firebase Hosting uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: "${{ secrets.GITHUB_TOKEN }}" firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT }}" projectId: 你的Firebase项目ID channelId: live # 指定部署到正式环境
4. 关键注意事项
- 将配置中的「你的Firebase项目ID」替换为实际的项目ID(可在Firebase控制台项目设置中查看)
- 确保项目根目录的
firebase.json已正确配置部署目录,比如:{ "hosting": { "public": "dist/你的项目名称", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ] } } - 所有敏感信息必须通过GitHub Secrets管理,禁止硬编码在配置文件中
内容的提问来源于stack exchange,提问作者Vled
相关产品推荐
相关产品推荐

