CircleCI部署任务未触发求助:CI分支未执行部署Job
排查CircleCI Deployment任务未触发的问题
我来帮你搞定这个CircleCI部署任务没触发的问题,仔细看了你的配置,发现几个核心问题,咱们一步步修复:
核心问题分析
你的配置在CircleCI 2.0规则下有几个关键错误,导致deployment任务根本不会被执行:
缺少Workflows配置
CircleCI 2.0及以上版本中,单独定义的jobs不会自动运行,必须通过workflows来明确指定哪些job在什么条件下执行。你的配置里只有jobs定义,没有workflows,所以deployment job完全没被纳入执行流程。Deployment Job的机器配置错误
machine模式下不能直接指定node/npm版本,你写的node和npm字段是无效的,CircleCI不会识别这种写法,会导致job配置解析失败,进而不触发任务。分支过滤位置不正确
在CircleCI 2.0中,分支过滤规则应该放在workflows的job配置里,而不是直接写在job定义内部,你原来的branch: ci写法不会生效。缺少代码checkout步骤
你的deployment job里没有拉取代码的步骤,直接cd website会找不到目录,就算任务触发了也会执行失败。
修复后的完整配置
下面是调整后的正确配置,我标注了关键修改点:
version: 2.1 # 升级到更稳定的2.1版本 jobs: build: machine: true steps: - run: echo "Skipping tests on non-gh-pages branches" deployment: machine: true # machine模式只需指定true,版本通过nvm安装 steps: - checkout # 新增:必须先拉取代码仓库 - run: | # 安装指定版本的node和npm nvm install 6.11.2 nvm use 6.11.2 npm install -g npm@3.10.10 - run: git config --global user.email "<GITHUB_USERNAME>@users.noreply.github.com" - run: git config --global user.name "<YOUR_NAME>" - run: echo "machine github.com login <GITHUB_USERNAME> password $GITHUB_TOKEN" > ~/.netrc - run: cd website && npm install && GIT_USER=<GITHUB_USERNAME> npm run publish-gh-pages # 新增:定义workflow,指定job的执行规则 workflows: version: 2 build-and-deploy: jobs: - build: filters: branches: ignore: gh-pages # 在workflow里配置build的分支过滤 - deployment: filters: branches: only: ci # 仅在ci分支运行deployment requires: # 可选:如果需要build完成后再部署,取消注释 # - build
额外排查点
除了配置修改,你还需要检查以下内容:
- CircleCI项目权限:在CircleCI的项目设置页面,确认ci分支没有被排除在构建之外,确保项目已正确关联GitHub仓库。
- 环境变量验证:确认
GITHUB_TOKEN已在CircleCI项目的环境变量中添加,且该token拥有仓库的读写权限(用于推送gh-pages分支)。 - 构建日志检查:去CircleCI的构建页面查看workflow日志,确认deployment job是否被触发,如果还是没触发,看日志里是否有分支匹配失败的提示。
内容的提问来源于stack exchange,提问作者mfrachet
相关产品推荐
相关产品推荐

