-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Open
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: contributor-productivityTeam-specific productivity, code health, technical debt.Team-specific productivity, code health, technical debt.p: toolingAffects the flutter_plugin_tools packageAffects the flutter_plugin_tools packagepackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.team-ecosystemOwned by Ecosystem teamOwned by Ecosystem teamtriaged-ecosystemTriaged by Ecosystem teamTriaged by Ecosystem team
Description
Currently the tooling supports skipping packages via yaml files that contain a flat list of excluded packages. This works well, and has substantially improved the situation over trying to maintain it manually in .cirrus.yaml.
However, we've had a number of cases where we want to exclude a package only for a specific channel, usually because either a package is deliberately becoming master-only temporarily, or because it's impossible to run a specific set of tests on one channel for some reason. Our de-facto solution for that to embed conditional logic in .cirrus.yaml (like this), which is annoying to get right and scales poorly.
Some options:
- Don't change the tooling, but make
exclude_foo_master.yamlandexclude_foo_stable.yamlfiles (one of which would be empty) and passexclude_foo.yaml,exclude_foo_$CHANNEL.yamlin the script.- This would be slightly cumbersome, but doesn't add any new tooling.
- Change the format of the YAML files to include channel-specific exclusions. E.g., change the current list to a dictionary where the keys are lists of channels (with empty meaning all channels).
- This would require a way to get the channel into the script. If we go this route we should add a flag to use (
--channel=$CHANNEL) since picking up env variables automagically inside the script makes things much harder to understand.
- This would require a way to get the channel into the script. If we go this route we should add a flag to use (
ditman
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work listc: contributor-productivityTeam-specific productivity, code health, technical debt.Team-specific productivity, code health, technical debt.p: toolingAffects the flutter_plugin_tools packageAffects the flutter_plugin_tools packagepackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.team-ecosystemOwned by Ecosystem teamOwned by Ecosystem teamtriaged-ecosystemTriaged by Ecosystem teamTriaged by Ecosystem team