kubeflow / kubeflow/pipelines-components

Add CLI smoke checks against repo-root `test_data/` fixtures in CI

Open
#61 1 comment 0 reactions 1 assignee Claimed by @hbelmiro View on GitHub
Dominant language
Python
Stars
12
Forks
56
Avg merge
1d 11h
Merged PRs (30d)
3

Description

## Summary

We want CI to run selected `scripts/` CLIs against the committed repo-root `test_data/` fixtures (the “golden snapshot”) and require exit code 0. This provides an integration-style sanity check that scripts work end-to-end on representative assets.

## Proposed CI location

Add steps to `.github/workflows/scripts-tests.yml` (for the `scripts` matrix entry) so these checks run when scripts change.

## Candidate CLIs

These CLIs are intended to be “read-only” checks (no file modifications):

- `scripts/check_base_image_tags/check_base_image_tags.py`
- `scripts/validate_components/validate_components.py`
- `scripts/validate_base_images/validate_base_images.py`
- `scripts/validate_metadata/validate_metadata.py`
- `scripts/generate_readme` (check mode)

Also, evaluate new CLIs that were included after the creation of this issue.

## Constraints / design notes

- The CLIs should be runnable against `test_data/` without requiring mutation of fixtures or the repository.
- If a CLI currently can’t target `test_data/` due to hard-coded assumptions (e.g., requiring `components/` at repo root, assuming importable packages), options include:
- removing those repo-layout assumptions and operating from file paths; or
- introducing a flag like `--repo-root PATH` to treat `test_data/` as the logical root.

## Acceptance criteria

- A set of steps in `.github/workflows/scripts-tests.yml` runs the chosen CLIs against `test_data/` and fails the workflow on non-zero exit.
- The steps are gated so they don’t run in the `.github/scripts` matrix entry.
- The smoke checks are stable across the Python versions used in CI.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.