Skip to content

Conversation

@dcharkes
Copy link
Collaborator

@dcharkes dcharkes commented Aug 19, 2025

Refactors the CI script.

  • Introduces --all and --none flags to easily control which tasks are run.
  • Refactored the implementation in to Task classes.
  • Stream output of process calls, including terminal commands such as replacing the last line.

This should ease running only certain tasks locally, and enables just using --all in the GitHub action.

Rearchitects the CI script (`tool/ci.dart`) to be more robust,
maintainable, and user-friendly.

Key improvements include:
- Introduces `--all` and `--none` master flags to easily control which
  tasks are run.
- Encapsulates all task logic into a class-based system, with an
  abstract `Task` base class and concrete subclasses for each task
  (e.g., `AnalyzeTask`, `TestTask`).
- Moves all execution logic into a `run()` method on each `Task`
  subclass, making the main script body a simple execution loop.
- Converts all file I/O and process execution to be fully
  asynchronous using `async`/`await`.
- Adds comprehensive documentation for all classes and methods.
- Reorders the file into a logical top-down structure for improved
  readability.
@github-actions github-actions bot added the type-infra A repository infrastructure change or enhancement label Aug 19, 2025
@coveralls
Copy link

coveralls commented Aug 19, 2025

Coverage Status

coverage: 77.073%. remained the same
when pulling aafb213 on infra-ci-refactor
into bb1a662 on main.

@dcharkes dcharkes merged commit 8537fba into main Aug 19, 2025
21 of 22 checks passed
@dcharkes dcharkes deleted the infra-ci-refactor branch August 19, 2025 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type-infra A repository infrastructure change or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants