mirror of https://github.com/pulumi/pulumi.git
8f594326a2
We currently run all codegen tests in pkg/codegen/$lang for every PR. These tests take quite a while to run and lock up many GitHub workers for this entire duration. This change attempts to address this issue by running codegen tests only for those PRs that touch the codegen directories. The machinery to make this work is roughly as follows: - In the on-pr workflow, when we're figuring out what we're doing, we check if we've changed codegen files. We use [paths-filter] to do this. - We decide whether we want to run codegen tests based on those files, and pass that onto the test matrix generator. - The test matrix generator filters out these packages and their subpackages from the list of tests under consideration. - Everything else proceeds as normal. [paths-filter]: https://github.com/dorny/paths-filter Things to note: - The test-codegen input defaults to true. All other invocations will run with codegen tests so these will continue to run on merge. Only PRs (from on-pr.yml) set it to false. - Since the number of tests is remarkably smaller without these tests, we can significantly reduce the number of partitions we use for pkg/ unit tests. This should alleviate pressure on GitHub workers further. This is a pretty blunt approach to the problem. If we wanted to be more targeted, instead of filtering at the get-job-matrix.py level, we could instead set an environment variable and add t.Skips in {program,sdk,type}_driver if that environment variable is set. And we can still do that in the future if we decide that maintaining this list is too much. Resolves #12334 |
||
---|---|---|
.. | ||
scripts | ||
workflows | ||
PULL_REQUEST_TEMPLATE.md |