使用Github Actions部署到Heroku提示推送被拒:无法删除main分支
问题原因
你遇到的部署报错核心是akhileshns/heroku-deploy action默认采用git推送方式部署,你指定了appdir: "dist",而dist是构建产物目录,本身不包含git仓库信息,action无法识别对应分支导致部署失败,单独添加branch参数无法解决该问题,该参数仅用于指定源代码仓库的部署分支,和dist目录的git信息缺失无关。
解决方案
直接在action的配置项中添加dontusegit: true即可,该参数会让action跳过git校验,直接将指定目录的内容压缩后推送到Heroku,适配构建产物部署的场景。
修改后的完整配置如下:
name: Deploy on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: install run: npm i - name: test run: npm run test-git - name: build run: npm run build-full - uses: akhileshns/heroku-deploy@v3.12.12 with: heroku_api_key: ${{secrets.HEROKU_API_KEY}} heroku_app_name: "appname" heroku_email: "myemail" appdir: "dist" dontusegit: true
额外校验项
- 如果你部署的是前端静态应用,需要确保dist目录下有合法的启动配置,比如包含
package.json且scripts中配置了正确的start命令,或者给Heroku应用配置了静态资源buildpack,避免部署后启动失败 - 确认GitHub仓库Secrets中存储的
HEROKU_API_KEY是你Heroku账号生成的有效授权密钥,heroku_app_name和heroku_email和你的Heroku应用信息一致
内容的提问来源于stack exchange,提问作者P_R
相关产品推荐
相关产品推荐

