test-infra: Undefined required context treated by Tide differently
What happened: I have the following config:
presubmits:
org/repo:
- name: 2nd-job
always_run: false
skip_report: false
agent: kubernetes
spec:
containers:
- image: <image>
command: ["/cmd"]
trigger: (?m)^/test( all| this),?(\s+|$)
rerun_command: /test this
tide:
merge_method:
org/repo: squash
pr_status_base_url: <url>
blocker_label: merge-blocker
squash_label: tide/squash
queries:
- repos:
- org/repo
labels:
- ready-to-merge
missingLabels:
- do-not-merge
- work-in-progress
context_options:
from-branch-protection: true
skip-unknown-contexts: false
branch-protection:
protect: true
orgs:
test-devf-merge:
required_status_checks:
contexts: ["1st-job"]
So the 1st-job is external and goes from the buildkite not from prow.
- Tide shows only that label is required and not showing anything about job
- When the label is added it started to show that job is finally required
- When the job passed it shows that job is still required
But able to merge with no problem. But still shows that only 1 of 2 checks passed
What you expected to happen:
-
Tide shows that this job is required (even if it is not in prow config)
-
That’s fine
-
Tide shows all requirements are ssatisfied
How to reproduce it (as minimally and precisely as possible):
Add to config branch protection for external context (not defined in prow config). Change the status of the context via GH API.
Please provide links to example occurrences, if any: https://github.com/test-devf-merge/merge-bot-experiment/pull/36
Anything else we need to know?:
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 16 (16 by maintainers)
Also, are you saying that
tidemerges it but the status context does not get updated? This may have been a race between the two controllers