162 Commits

Author SHA1 Message Date
Bobby R. Bruce
cb56c67a8b misc: Fix weekly-tests.yaml container uris (#488) 2023-10-20 09:39:12 -07:00
Melissa Jost
34314b3f92 misc: Add LULESH GPU tests (#256)
Adds the LULESH GPU Tests to our GitHub Actions infrastructure

Co-authored-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Co-authored-by: Harshil Patel <harshilp2107@gmail.com>
2023-10-18 22:14:39 -07:00
Ivana Mitrovic
45df1dbb55 docker-images: Changed path from Google Registry to GitHub
Replaced all instances of the Google Docker registry
(gcr.io/gem5-test/) with the GitHub Docker registry (ghcr.io/gem5/).
2023-10-16 11:53:27 -07:00
Kaustav Goswami
68af3f45c9 tests: updated the nightly tests to use SST 13.0.0 (#441)
PR https://github.com/gem5/gem5/pull/396 updates the gem5 SST bridge to
use StandardMem in SST. This change updates the nightly tests to use SST
13.0.0 instead of SST 11.1.0. It also updates the dockerfile.

Change-Id: I5c109c40379d2f09601a1c9f19c51dd716c6582e

---------

Signed-off-by: Kaustav Goswami <kggoswami@ucdavis.edu>
Co-authored-by: Bobby R. Bruce <bbruce@ucdavis.edu>
2023-10-13 14:31:35 -07:00
Bobby R. Bruce
bf1c10d4b2 tests,misc: Update CI Tests 'testlib-quick' runs-on
Here it's more sensible to use a GitHub hosted runner. This job is
miniscule and is used to check the other tests have completed
successfully. It makes sense for this not to be on our own self-hosted
runner.

Change-Id: I5377e025334d43eaedd0fc61e5c708ba61255d28
2023-10-12 07:37:11 -07:00
Bobby R. Bruce
3816ea5633 misc,tests: Add dummy jobs to workflows for status checks
Change-Id: I52e42b6f93cfbb1a8e4800a3f6e264d49bebb06c
2023-10-12 07:37:04 -07:00
Bobby R. Bruce
dc38a801b7 Merge branch 'develop' into workflows-for-new-runners 2023-10-09 23:10:18 -07:00
Bobby R. Bruce
fa8c9414b2 misc,python: Run pre-commit run --all-files
This applies the automatical formatting to the .yaml files.

Change-Id: I10d067ba65722aca8aaf64a62b42ae57de468e75
2023-10-09 13:20:25 -07:00
Bobby R. Bruce
243a261491 tests: Update Testlib CI tests to use multiheading
These were previously only running on single-threaded machines. Now
they'll be running on 4-core VMs so may as well run tests in parallel.

Change-Id: I7ee86512dc72851cea307dfd800dcf9a02f2f738
2023-10-09 09:56:32 -07:00
Bobby R. Bruce
70f8c49e8b tests,misc: Remove 'run' and 'build' labels
All runners are now equal, these labels are pointless.

Change-Id: I9d5fb31e20e95d30e9726d4bf0353dc87af614d7
2023-10-09 09:56:25 -07:00
Jason Lowe-Power
6f5d877b1a misc: Update gem5 to use clang-15 and clang-16 (#365)
This introduces the changes necessary for clang-15 and clang-16 to run
within gem5, and adds them to the compiler tests.

This also updates the dockerfiles for ubuntu 22.04 to include the steps
necessary to compile clang-15 and clang-16.
2023-10-04 09:51:12 -07:00
Bobby R. Bruce
074fa4c604 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.
2023-09-27 14:32:16 -07:00
Melissa Jost
34c3676105 misc: Update gem5 to use clang-15 and clang-16
This introduces the changes necessary for clang-15 and clang-16
to run within gem5, and adds them to the compiler tests.

Change-Id: If809eae1bd8c366b4d62476891feff0625bdf210
2023-09-27 09:35:18 -07:00
Bobby R. Bruce
6eb7c10eb9 misc: Add HACC GPU tests (#258)
This adds the HACC GPU tests to be run weekly
2023-09-20 11:26:54 -07:00
Bobby R. Bruce
561f3bd75b misc,tests: Split testlib CI Tests to one dir-per-job
This splits the CI Tests to one job per sub-directory in "tests/gem5"
via a matrix.

Advantages:
* We can utilize more runners to run the quick tests. This should mean
  tests run quicker.
* This approach does not require editing of the workflow as more tests
  are added or taken away.
* There is now an output artifact for each directory in "tests/gem5"
  instead of one for the entriety of every quick test in "tests".

In addition:
* The artifact retention for the test outputs has been increased to 30 days.
* The output test artifacts have been renamed to be more descriptive of
  the job, run, attempt, directory run, and the status.
* The 'tar' step has been removed. GitHub's 'action/artifact' can handle
  directories.

Change-Id: I5b3132b424e3769d81d9cd75db2a8c59dbe4a7e5
2023-09-19 19:35:58 -07:00
Bobby R. Bruce
46be2d2339 misc,tests: Use GitHub Docker registry for 22.04 all-deps (#321)
Via this workflow we now can build and push our docker images to the
GitHub Docker container registry:

26a1ee4e61/.github/workflows/docker-build.yaml

GitHub does not charge for downloads to runners (hosted or self-hosted).
This can therefore save the project money if we download from GitHub's
Docker reigstry over Google Cloud's.

This is a test to ensure this works as intended.
2023-09-14 15:10:58 -07:00
Bobby R. Bruce
017fb51fad misc,tests: Remove duplicate running of daily gem5_library_tests (#318)
The long/daily tests in "tests/gem5/gem5_library_tests" were running in
both the "testlib-long-tests" and the
"testlib-long-gem5_library_example_tests" job in the Daily tests
Workflow. The running in "testlib-long-tests" is removed in this PR.
2023-09-14 15:10:02 -07:00
Melissa Jost
29fa894e19 misc: Add HACC GPU tests
This adds the HACC GPU tests to be run weekly

Change-Id: I77d58ee9a3d067a749bae83826266bf89bb5020f
2023-09-14 10:35:10 -07:00
Bobby R. Bruce
210ab04bca misc: Update docker-build.yaml artifact actions to v3
Change-Id: I4dea25fcfb786758942e6245133d32949b921774
2023-09-14 01:28:10 -07:00
Bobby R. Bruce
040f4d5ae0 misc,tests: Use GitHub Docker registry for 22.04 all-deps
Via this workflow we now can build and push our docker images to
the GitHub Docker container registry:
26a1ee4e61/.github/workflows/docker-build.yaml

GitHub does not charge for downloads to runners (hosted or self-hosted).
This can therefore save the project money if we download from GitHub's
Docker reigstry over Google Cloud's.

This is a test to ensure this works as intended.

Change-Id: Iccdb1b7a912f1e0a0d82b7f888694958099315b3
2023-09-14 01:04:05 -07:00
Bobby R. Bruce
772a316dab misc: Use 'workdir' for docker-build.yaml
Change-Id: If8b30a31e1a8c3fdba84d69da4bb28e09179cb96
2023-09-13 22:52:26 -07:00
Bobby R. Bruce
dc02862c56 misc: Fix docker build workflow
Change-Id: Ib66cc124a4c3ce1354faee092f14543e699dca40
2023-09-13 22:47:08 -07:00
Bobby R. Bruce
5102072950 misc,tests: Rm duplicate running of daily gem5_library_tests
The long/daily tests in "tests/gem5/gem5_library_tests" were running in
both the "testlib-long-tests" and the
"testlib-long-gem5_library_example_tests" job in the Daily tests
Workflow. The running in "testlib-long-tests" is removed in this patch.

Change-Id: I1c665529e3dcb594ffb7f6e2224077ae366772d6
2023-09-13 17:50:56 -07:00
Bobby R. Bruce
75a33ec377 misc,util-docker: Fix docker-build.yaml
https://github.com/gem5/gem5/actions/runs/6114221855 failure was due
to to running the actions inside our 22.04-all-dependencies container.
This container does not contain docker. We must therefore run this action
outside of the container. However, due to our policy of checking out the
code within this container, we must split this into two jobs and use the
artifact upload and download to get the resources we want.

Change-Id: I6a5f9c3a4c287a56a3d5abe3b84dd560fa2e9ff1
2023-09-07 14:07:36 -07:00
Bobby R. Bruce
84e0224e85 util-docker: Proof-of-concept using Docker buildx (#273)
Introduced in https://github.com/gem5/gem5/pull/236 the
"docker-build.yaml" file will allow us to build and push docker images
to the GitHub Container Registry. This allows for both automation of
docker image building and allows us to utilize Github's zero-cost
pulling policy for downloads to GitHub Actions runners.

In this PR https://github.com/gem5/gem5/pull/236 has been altered to use
Docker `buildx` which allows for multi-platform Docker Image builds. A
multi-platform Docker image pull automatically pull the correct image
for your platform from a single URL. In this prototype the images are
build to both `linux/arm64` and `linux/amd64` have been set.

Docker `buildx` has it's own file format for specifying image builds
called `bake`. "util/dockerfiles/docker-bake.hcl" has been added with
the goal of replacing "util/dockerfiles/docker-compose.yaml".

In this proof-of-concept doesn't build all our docker images, just
enough to ensure it works inside our actions as intended.
2023-09-07 11:37:24 -07:00
Bobby R. Bruce
12c6742607 misc: Fix CI GitHub Action to stop if Workflow re-triggered
This ensures that if the CI tests are running for a PR, and a new
workflow is triggered (typically by pushing/rebasing the PR) then the
older workflow is cancelled.

Change-Id: Ifa172bdbdac09c5a91abb41a0162c597445e4e2e
2023-09-05 20:49:28 -07:00
Bobby R. Bruce
1b0bb678ab util-docker: Proof-of-concept using Docker buildx
Introduced in https://github.com/gem5/gem5/pull/236 the
"docker-build.yaml" file will allow us to build and push docker images
to the GitHub Container Registry. This allows for both automation of
docker image building and allows us to utilize Github's zero-cost
pulling policy for downloads to GitHub Actions runners.

In this PR https://github.com/gem5/gem5/pull/236 has been altered to
use Docker `buildx` which allows for multi-platform Docker Image builds.
A multi-platform Docker image pull automatically pull the correct image
for your platform from a single URL. In this prototype the images are
build to both `linux/arm64` and `linux/amd64` have been set.

Docker `buildx` has it's own file format for specifying image builds
called `bake`. "util/dockerfiles/docker-bake.hcl" has been added with
the goal of replacing "util/dockerfiles/docker-compose.yaml".

In this proof-of-concept doesn't build all our docker images, just
enough to ensure it works inside our actions as intended.

Change-Id: Id0debed216c91ec514aa4fce3bc2ff4fc2ea669b
2023-09-05 17:59:06 -07:00
Bobby R. Bruce
1ec58d589a misc: Fix broken code example in bug_report.md
Change-Id: I9bc1b42d488a415d2ea165385d83fea3d4ac288d
2023-09-02 04:46:04 -07:00
Bobby R. Bruce
188d29fe05 misc: Add language specification to code-blocks
Change-Id: I875aeee7eb0f9970711a97448d3bcb7acddbe7b1
2023-09-02 04:44:07 -07:00
Bobby R. Bruce
fcb586cfed misc: Add/Remove new lines from bug_report.md
There were some weird newline characters in this file, or lack of lines.
This patch adds/removes them.

Change-Id: I6cc918788c07bbc4be5c68401ad3987be00fffc4
2023-09-02 04:42:53 -07:00
Bobby R. Bruce
0ac2f67437 misc: Remove escape characters from bug_report.md
The bug_report.md is rendered as plain text, not markdown, when creating
a bug report. As such the escape characters are removed in this commit.

Change-Id: I524c66ae61d00b7ed59153ba9f4b2297ff50ee18
2023-09-02 04:41:08 -07:00
Bobby R. Bruce
7db2aac943 misc: Remove 'run-name' from compiler-tests.yaml
This isn't necessary. Without 'run-name' the action's default name is
'run-name'. Displaying the actor who launched the action is pointless
for scheduled tests.

Change-Id: I15d52959389881381ef7685efb57152c5162c89d
2023-08-31 02:12:20 -07:00
Bobby R. Bruce
7cdce3a975 util-docker: Add GitHub Action to create Docker Images
This is built to test the following assumptions:

1. We can trigger a GitHub action event on the changing of a
   file/directory.
2. We can use GitHub actions to build a docker image.
3. We can use GitHub actions to push a docker image to a container
   registry.
4. We can use GitHub's container registry.

Right now this will only build and push ubuntu-20.04_all-depenencies, as
a test.

Change-Id: Ie1a55c97c6eef26281456c908e1200b27da4d961
2023-08-29 00:30:51 -07:00
Bobby R. Bruce
9d2e860d74 misc: Update CI tests to not run on draft PRs (#229)
This updates all the jobs for our CI tests to make sure they don't run
tests on draft pull request, and only trigger when ready for review
2023-08-28 15:19:49 -07:00
Melissa Jost
d640c17f75 misc: Update CI tests to not run on draft PRs
This updates all the jobs for our CI tests to make sure they
don't run tests on draft pull request, and only trigger when
ready for review

Change-Id: I3fe7ae373c39fc6ef594c0c71c6f10e7319553d8
2023-08-25 10:27:08 -07:00
Bobby R. Bruce
b2d40edc62 misc: Move compiler tests to run on 'build' runners
This is an experiment. The runners were sometimes running out of memory
building gem5. The builders have more memory to handle this. The runners
have 4-cores so compilation should be faster (note the inclusion of the
`-j$(nproc)`.

Change-Id: I964c5a778938b449502d92dec3431f8b788397e4
2023-08-23 17:17:28 -07:00
Bobby R. Bruce
f9a4a794b7 misc: Add DRAMSys tests to our weekly tests (#198)
This adds the DRAMSys tests to our weekly-tests.yaml file
2023-08-21 17:31:36 -07:00
Melissa Jost
e611cc66b1 misc: ADD DRAMSys tests to our weekly tests
This adds the DRAMSys tests to our weekly-tests.yaml file

Change-Id: Ieb7903a3a7ffae6359b3de5f66e1dd65eb51fc80
2023-08-21 11:53:08 -07:00
Melissa Jost
fa49de5b98 misc: Update matrix runs in scheduled tests
This changes continue-on-error to be fail-fast instead, as
continue-on-error will mark failed matrix runs as
successful, whereas fail-fast makes sure everything in the matrix
runs, but gets marked as failed if part of it fails.

Change-Id: Ie20652c229b6cce9f1c0a45958b088391e7aae97
2023-08-17 15:56:02 -07:00
Melissa Jost
b08bc5ff56 misc: Add continue-on-error to matrix runs
This sets continue-on-error to true on any scheduled test that
uses a matrix so we can have all sets of tests run regardless
if one of them fails or not.

Change-Id: I8f6137ebdf62a5cecd582387316c330c8a1401ca
2023-08-10 16:58:22 -07:00
Melissa Jost
8b6912f331 misc: Update where runners are cleaned in workflow files
This moves the clean runner step in our yaml files to be at the
beginning of a job, so that if a runner goes down and is
unable to clean at the end, we can ensure that
subsequent jobs still run as expected.

Change-Id: Iba52694aefe03c550ad0bfdb5b5f938305273988
2023-08-07 15:05:32 -07:00
Melissa Jost
bc2cabbeb5 Merge branch 'develop' into clean-weeklies 2023-08-07 11:32:18 -07:00
Melissa Jost
eb541da32c misc: Refactor weekly-tests.yaml
This adds a matrix to the weekly tests in order to make the file
cleaner.

Change-Id: I830a0bf8b7d0406e9c377fedf2a7edfa5beabf40
2023-08-07 11:30:44 -07:00
Melissa Jost
bd6a1f5b4b Merge branch 'develop' into refactor-test-configs 2023-08-04 14:54:30 -07:00
Melissa Jost
e7c8a12349 misc: Fix daily tests
The dailies timed out as they were running the entire directory
of tests due to a wrong variable named being used.  In addition,
the names of tests were adjusted to include the matrix type so
the artifacts won't overwrite each other

Change-Id: Iaa1be8e0cfcbf9d64f1a674590bfe2bf1f0dae90
2023-08-03 17:00:07 -07:00
Melissa Jost
298b1fafb4 misc: Update test names in daily and weekly yaml files
Updates the directories in which tests are run in accordance
with the refactoring of the testing directory

Change-Id: I93f5c5b0236c5180da04deb425ec2ed6804fa003
2023-08-03 15:57:24 -07:00
Melissa Jost
415a6eb9d4 misc: Add missing dependency to daily tests
The refactoring to the daily tests was missing the dependency
on the 'name-artifacts' job, which is necessary for downloading
all the gem5 artifacts.  This adds it in so the tests run as
expected.

Change-Id: I0d71ab147395f41c881f2b24597bc07006e1f9c0
2023-07-26 23:49:39 -07:00
Bobby R. Bruce
5888ea68a3 misc: Split up tests in daily-tests.yaml (#105)
This splits up the gem5 library example tests by Suite UID, as right now
running them together uses the runner for a long period of time. It is
important to note that doing this means additional tests from this
directory will need to be manually added, such as the kvm tests.

Change-Id: Ib2a0aca08f9b51b60e9dd0528324372cf2d98c05
2023-07-26 21:04:18 -07:00
Melissa Jost
7371dd51b9 misc: Move gem5 library example tests into a matrix
This moves the gem5 library example tests into a separate matrix,
so they can run on separate runners

Change-Id: Ie9f51b5bae9e7e424d1c98b545b4cf92b481a2fb
2023-07-26 16:19:12 -07:00
Melissa Jost
62df5ae35f misc: Refactor daily-tests.yaml
This changes the daily tests to use a matrix in order to run
tests.  It also includes forces the cleaning step to run
regardless of success or failure.  With this refactoring, now
all builds of gem5 must finish before any tests run, and all
tests download all artifacts from all the build runs.

Change-Id: I16e1bc9acaf619feb85fba53eb6129e7df3fe409
2023-07-26 16:19:11 -07:00