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.

  1. Tide shows only that label is required and not showing anything about job
image
  1. When the label is added it started to show that job is finally required
image
  1. When the job passed it shows that job is still required
image

But able to merge with no problem. But still shows that only 1 of 2 checks passed

image

What you expected to happen:

  1. Tide shows that this job is required (even if it is not in prow config)

  2. That’s fine

  3. 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)

Most upvoted comments

Also, are you saying that tide merges it but the status context does not get updated? This may have been a race between the two controllers