Skip to content

Conversation

@ncomerci
Copy link
Member

@ncomerci ncomerci commented Dec 29, 2025

What Changed:

  • Added mimic.yaml configuration file support for multi-task
  • Added MimicConfigHandler to load and validate mimic.yaml configurations
  • Added --include and --exclude flags to all CLI commands for task filtering
  • Maintained backward compatibility with single-task mode when mimic.yaml doesn't exist

@ncomerci ncomerci requested a review from lgalende December 29, 2025 16:01
@ncomerci ncomerci self-assigned this Dec 29, 2025
Copy link
Member

@lgalende lgalende left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, we do:

if (...) something()
// or
if (...) {
  somethingTooLongThatDoesNotFitOneLine()
}

but not:

if (...)
  somethingTooLongThatDoesNotFitOneLine()

const tasks = filterTasks(this, allTasks, include, exclude)
for (const task of tasks) {
console.log(`\n${log.highlightText(`[${task.name}]`)}`)
await this.runForTask(task, key, registryUrl, skipCompile, task.output)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't quite get this, the inputDir param is the task.output?

const tasks = filterTasks(this, allTasks, include, exclude)
for (const task of tasks) {
console.log(`\n${log.highlightText(`[${task.name}]`)}`)
await this.runForTask(task, key, registryUrl, skipCompile, task.output)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For each task being deployed, all tasks are rebuilt repeatedly. This is O(n^2) and not necessary.

Copy link
Member

@lgalende lgalende Jan 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--exclude invest does not build invest but runs the Invest test. Is that the expected behavior, or should it run the Bridge test only?
Same with --include.
Devs can still use .only in their tests tho...

Image


const validNames = new Set(include.filter((name) => taskNames.has(name)))
if (validNames.size === 0) {
console.warn(`${log.warnText('Warning:')} No valid tasks to include. All tasks will be skipped.`)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

Should in the second case (i.e., when all tasks are excluded) also print Warning: No valid tasks to include. All tasks will be skipped.?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants