我有一个拉取请求,在 VSTS 上传递了构建,但是无论我尝试触发构建多少次,另一个检查“预期 - 等待报告状态”都不会成功。我有许多其他拉取请求,没有任何问题。
我应该先检查哪里来解决这个问题?
Luc*_*cia 39
如果在合并之前需要进行此状态检查,请使用个人访问令牌而不是默认的secrets.GITHUB_TOKEN在 github 操作中创建此 PR:
- name: Create Pull Request\n uses: peter-evans/create-pull-request@v3\n with:\n token: ${{ secrets.YOUR_PAT }}\nRun Code Online (Sandbox Code Playgroud)\n如果没有,只需在受保护的分支中的存储库设置下取消选中此选项:
\n\n根据设计,触发其他 github 操作的 github 操作受到限制。所以如果你有这样的设置x must pass before branch can be merged,某些操作可能会永远陷入困境。
这也是为什么“推送一个空提交”或“关闭并重新打开 PR”可以解除它的困扰——因为这样 PR 就不再纯粹是由操作触发的。这也是切换到 PAT 有效的原因,因为使用secrets.GITHUB_TOKEN意味着此 PR 是由 github-action-initiated 发起的。使用 PAT 时,它是由用户发起的。
\n\n我不知道如何解决这个问题,如何调试?没有比这更具体的信息:等待状态报告
\n
我发现其他人的调试过程通常比解决方案本身更具启发性,所以,很高兴您提出这个问题!我是这样得出结论的:
\nsecrets.GITHUB_TOKEN标记,而正确的定义则使用 PAT。事实上,这些 PR 的开头是这只章鱼,而正确的 PR 的开头是用户图标:案件结案。
\n小智 36
对我来说最简单的解决方案是关闭 PR 然后再次打开它。之后,检查按预期执行的位置。
GitHub 上有一个按钮,可以让这一切变得非常简单。
小智 17
我相信您需要仔细检查 yml 文件中的作业名称是否与所需的分支保护规则/状态检查中的名称完全相同。 请注意,它区分大小写,我花了一些时间修复这个问题,但事实证明它期望构建工作完成,而我已经构建
Sam*_*Sam 14
有时可能会发生这种情况,您可以做的是将空提交推送到 PR 的分支。它将重新触发您在 CI 中的所有检查。这可以使用git命令来完成。
git commit --amend --no-edit
Run Code Online (Sandbox Code Playgroud)
然后强行推动你的分支。
Sta*_*erc 11
我找到了解决方法!您需要使用不同的分支名称为同一提交创建新的 PR。这将在完成后启动构建,原始 PR和新 PR 都将获得状态更新。然后您可以合并原来的并关闭新的。
如果 PR 是从远程存储库创建的,您可以按照以下说明将引用拉取到本地存储库:
git fetch origin pull/{id}/head:temporary
git push origin temporary
Run Code Online (Sandbox Code Playgroud)