ci: only run catlin validate on the resource version directory#1387
Merged
Conversation
The catlin validate gate (added when catlin lint moved from Prow to GitHub Actions) reduced every changed file to its containing directory via `dirname` and passed the result to `catlin validate`. For a new task version this includes the `tests/` and `tests/fixtures/` subdirectories, so catlin ends up validating the test manifests (a `TaskRun` or `Pipeline`) as if they were catalog resources: FILE: task/<name>/<version>/tests/run.yaml ERROR: Resource path is invalid; expected path: pipeline/... ERROR: Pipeline "..." must have a label "app.kubernetes.io/version" ... catlin also errors with "unknown kind TaskRun" for TaskRun-based tests, so any new task version that ships a tests/run.yaml fails the gate. No new task version had been added since the gate landed, so this went unnoticed. Reduce each changed path to its `task/<name>/<version>` version directory instead. catlin validates only the catalog resource in that directory and does not descend into tests/ or samples/, which are not catalog resources. The existing `[[ -d ]]` filter still drops removed directories and non-directory matches such as task/<name>/OWNERS. Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
|
[APPROVALNOTIFIER] This PR is APPROVED Approval requirements bypassed by manually added approval. This pull-request has been approved by: 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
The
catlin validategate (introduced in #the Prow→GHA migration, commit51a8540f) reduces every changed file to its containing directory withdirnameand passes the result tocatlin validate. For a new task version the changed set includes thetests/andtests/fixtures/subdirectories, so catlin validates the test manifests (aTaskRunorPipeline) as if they were catalog resources:catlin also errors with
unknown kind TaskRunforTaskRun-based tests, so any new task version that ships atests/run.yamlfails the gate. Because no new task version has been added since the gate landed, this went unnoticed until now (surfaced by #1386).Fix
Reduce each changed path to its
task/<name>/<version>version directory (grep -oE '^task/[^/]+/[^/]+' | sort -u) instead ofdirnameon every file. catlin then validates only the catalog resource in that directory and does not descend intotests/orsamples/, which are not catalog resources. The existing[[ -d ]]filter still drops removed directories and non-directory matches such astask/<name>/OWNERS. The same detection is applied to the informational "catlin lint scripts" step.Verified locally with the pinned catlin version CI installs: validating
task/<name>/<version>only checks the resource.yamland ignorestests/.Submitter Checklist
/kind bug/kind bug
See the contribution guide for more details.