PR合并触发GitHub Pages部署YAML脚本语法错误求助
解决GitHub Actions Workflow YAML语法错误(Invalid workflow file on line 13)
错误原因
报错的核心是YAML层级配置错误:你把if条件放在了jobs节点下,和build作业同级,但GitHub Actions中if是单个作业的专属配置项,必须嵌套在对应作业的内部,不能作为jobs的直接子节点。
修正后的完整Workflow代码
name: Github Pages Deploy on: push: branches: - 'master' pull_request: branches: - 'master' types: [closed] jobs: build: if: github.event.pull_request.merged == true runs-on: ubuntu-latest strategy: matrix: node-version: [15.x, 16.x] steps: - name: Checkout uses: actions/checkout@v4 # 建议升级到最新稳定版,v1已停止维护 - name: Install and build run: npm install --save --legacy-peer-deps && npm run build - name: Deploy uses: JamesIves/github-pages-deploy-action@4.1.1 with: branch: gh-pages # 部署目标分支 folder: build # 要部署的产物目录
关键修改说明
- 把
if: github.event.pull_request.merged == true移动到build作业内部,作为该作业的条件判断属性,确保只有当PR被合并时,才会执行后续的构建和部署任务。 - 额外优化:将
actions/checkout@v1升级到v4,避免使用已停止维护的旧版本,提升兼容性和安全性。
可选逻辑调整
如果只需要在PR合并时触发部署,不需要监听master分支的直接推送,可以删除on节点下的push配置块。
内容的提问来源于stack exchange,提问作者Siddhesh
相关产品推荐
相关产品推荐

