misc,ext,tests: Automatically split CI TestLib tests across GitHub Action jobs (#263)
This PR utilizes GitHub Action's matrix's to automatically distribute the CI testlib gem5 build and test jobs across available GitHub Action Runners. The CI tests (the `quick` testlib tests, i.e. those run with `./main.py run`) are distributed across the runners on a per directory basis --- all directories under "tests/gem5" are run as their own jobs. The necessary gem5 builds for each workflow are now automatically inferred via the introduction of `./main.py list`'s `--build-targets` flag which returns the gem5 build target for a given test or collection of tests. E.g., `./main.py list --build-targets` will return the build targets for all the `quick` testlib tests and `./main.py list --build-target --uid=<id>` will return the build targets the test suite `<id>` requires. Moving from monolithic jobs to fine-grained ones will make the locaiton of test failures more obvious. Each job has it's own artifact containing "test/testing-results" for the tests run in that job. In addition, maintenance of these files should become less burdensome due to less hardcoding.
This commit is contained in:
@@ -318,6 +318,10 @@ def checkpoint(dir):
|
||||
|
||||
drain()
|
||||
memWriteback(root)
|
||||
|
||||
# Recursively create the checkpoint directory if it does not exist.
|
||||
os.makedirs(dir, exist_ok=True)
|
||||
|
||||
print("Writing checkpoint")
|
||||
_m5.core.serializeAll(dir)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user