machine-config-operator: Drop skip_if_only_changed for all optional: true jobs#27015
Conversation
…l: true` jobs The machine-config-operator is a key component of OpenShift 4 that touches on many things, from OKD to single node to bare metal magic to networking. We even used to handle etcd. We have accumulated a giant pile of jobs due to this. But not every job needs to run on every PR - it's at best a waste of money, and at worst a huge distraction because every pull request is accompanied by a giant pile of red "X"'s by default. Now, many of these jobs are actually `optional: true` - their failure will not block merges. And in theory, they shouldn't run by default; but many of them got a `skip_if_only_changed` annotation to avoid them only docs changed, but that annotation isn't implemented in the way one would expect. It appears to be a simple *inverse* of `run_if_changed`. Which means that all these optional jobs are still triggered for not-documentation PRs. So by just dropping this, we should return to not running these jobs by default. People touching things that might affect bare metal specifically will need to e.g. invoke `/test e2e-metal-ipi` explicitly now, and similar for the other jobs.
|
Skipping CI for Draft Pull Request. |
|
Or to say it another, simpler way: The goal is to get all these jobs that are (Alternatively in the future, we could add explicit |
|
OK after a lot of private chat, I think this is probably good to go. Though, for some reason Copying a tidbit from myself for posterity:
|
|
ooooh so |
Exactly, that's my understanding. I studied openshift/machine-config-operator#3006 as an example - this is a recent PR, targeting git master. No jobs were explicitly invoked or skipped. IOW, this is a demo of what happens on default PRs today. Notice that ci/prow/e2e-vsphere-upgrade ran by default (along with a big pile of other jobs). But, e2e-vsphere didn't! And spot the difference: So this will drop out tons of things, notably permafail things like e2e-aws-disruptive. |
|
thanks for walking me through that - got it! 👍 let's give this a whirl! /lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cgwalters, kikisdeliveryservice The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@cgwalters: Updated the following 2 configmaps:
DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
@cgwalters: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
Right now Fedora doesn't ship Go 1.17, only Go 1.18beta. That version emits a different error message for incompatible TLS versions. Adjust our unit test to handle both. (Also, a motivation for me is to cross-check the new CI configuration after openshift/release#27015 )
|
OK, a note to ourselves and other people who are submitting patches to the MCO: We now need to police ourselves a bit more and ensure that if a change to the code may affect e.g. bare metal, we'll need to remember to drop a A future improvement is to add |
|
Agree! Most of those teams are owners of their changes and dirs and are very good about manually running tests before approving / merging so we're ahead of the game on that. 😺 |
This is like openshift#27015 but for the layering branch; just `e2e-gcp-op-single-node` was incorrect here though.
The machine-config-operator is a key component of OpenShift 4 that
touches on many things, from OKD to single node to bare metal magic
to networking. We even used to handle etcd.
We have accumulated a giant pile of jobs due to this. But
not every job needs to run on every PR - it's at best a waste of money,
and at worst a huge distraction because every pull request is accompanied
by a giant pile of red "X"'s by default.
Now, many of these jobs are actually
optional: true- their failurewill not block merges.
And in theory, they shouldn't run by default; but many of them got
a
skip_if_only_changedannotation to avoid them only docs changed,but that annotation isn't implemented in the way one would expect.
It appears to be a simple inverse of
run_if_changed. Whichmeans that all these optional jobs are still triggered for not-documentation
PRs.
So by just dropping this, we should return to not running these jobs
by default. People touching things that might affect bare metal
specifically will need to e.g. invoke
/test e2e-metal-ipiexplicitlynow, and similar for the other jobs.