Commit Graph

41 Commits

Author SHA1 Message Date
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
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
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
Melissa Jost
6a360bd1bb misc: Update ci-tests.yaml to always clean runner
Adds line to make sure the runners are always cleaned whether
or not the previous tests pass

Change-Id: I980c0232305999fb3548464ea1b6eaeca7bcdbd6
2023-07-21 15:53:12 -07:00
Jason Lowe-Power
0dd4334622 misc: Add workflow to close stale issues (#96)
Create a new workflow file that will hold jobs that are for managing the
repository, issues, prs, etc. This changeset then adds a job to close
issues that have been open for 30 days without a response someone marks
the issue as "needs details."

Change-Id: I23b9b6aa5fa67f205e116c88d5449cb69f53b6f9

Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
2023-07-21 12:36:24 -07:00
Melissa Jost
2a6d39aa88 misc: Split up tests in daily-tests.yaml
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-20 10:43:32 -07:00
Bobby R. Bruce
65fc9a6bfa misc: Drop older compilers and Ubuntu 18.04 (#80)
* tests,util-docker,misc: Drop compiler support for GCC 7

Change-Id: I8b17b77c92b88e78a8cb6d38cd5f045dbe80a643

* tests,util-docker,misc: Drop compiler support for clang 6.0

Change-Id: Ie3b6bfe889ad1d119cee0c9ffb04c5996517922e

* util-docker,tests,misc: Remove Ubuntu 18.04 support

18.04 is no longer supported. This patch removes specific 18.04 compiler
tests and removes our 18.04 dockerfiles. Images will no longer be
produced for specific 18.04 tasks.

Compiler images for GCC and Clang, which used 18.04 have been updated to
use 20.04.

Change-Id: I6338ab47af3287a25a557dbbeaeebcfccfdec9fc
2023-07-18 10:28:09 -07:00
Melissa Jost
424350f446 misc: Update CI test workflow (#88)
* misc: Update CI test workflow

This updates our CI tests to clean the runners after every
workflow, to make sure no hanging files cause problems for
future tests

Change-Id: Iff6a702bbc2e86a31e4c18ef9764a3cfd3af2f7d

* misc: Update scheduled workflows to clean runners

This updates our scheduled tests to clean up any remaining
files after running tests to avoid anything hanging for
future runs.

Change-Id: Icfdd5a0559337ad0e62d108a47f4e5a12e0db677

* misc: Fix spacing in workflow files

Some commands were incorrectly spaced

Change-Id: Id340dc77bfb5c5d579b5f1e5b3ddeabea4a35ea8
2023-07-18 10:27:32 -07:00
Bobby R. Bruce
753933d471 gpu-compute, tests: Fix GPU_X86 compilation, add compiler tests (#64)
* gpu-compute: Remove use of 'std::random_shuffle'

This was deprecated in C++14 and removed in C++17. This has been
replaced with std::random. This has been implemented to ensure
reproducible results despite (pseudo)random behavior.

Change-Id: Idd52bc997547c7f8c1be88f6130adff8a37b4116

* dev-amdgpu: Add missing 'overrides'

This causes warnings/errors in some compilers.

Change-Id: I36a3548943c030d2578c2f581c8985c12eaeb0ae

* dev: Fix Linux specific includes to be portable

This allows for compilation in non-linux systems (e.g., Mac OS).

Change-Id: Ib6c9406baf42db8caaad335ebc670c1905584ea2

* tests: Add 'VEGA_X86' build target to compiler-tests.sh

Change-Id: Icbf1d60a096b1791a4718a7edf17466f854b6ae5

* tests: Add 'GCN3_X86' build target to compiler-tests.sh

Change-Id: Ie7c9c20bb090f8688e48c8619667312196a7c123
2023-07-11 14:35:03 -07:00
Melissa Jost
edc4ff3382 misc: Include body in check for Change-Id
Updates ci-tests.yaml to check the entire commit message for
the Change-Id, not just the subject.

Change-Id: Ia76c77d096617a6fe76ffea7f2bd8a4295ca14f7
2023-07-10 15:02:07 -07:00
Melissa Jost
ab0f43d290 misc: Update CI tests to only require 1 Change-Id
Since commits will be squashed and merged in GitHub, we only
require one of the commits to contain a Change-ID within a
pull request

Change-Id: I0fbb1c0e79009097456193fbe3c6fa20746e4805
2023-07-10 13:29:55 -07:00
Melissa Jost
05e7a68487 misc: Add runs-on line to CI tests
Adds missing line to CI tests

Change-Id: I34019d76648dc6025ac89cbec4605f17d2a5e3f7
2023-07-10 12:42:47 -07:00
Melissa Jost
3105f59544 misc: Update Change-Id Check
This updates the change-id code to refer to commit messages in
pull requests instead of on pushes.

Change-Id: I308f02b4616804b386140d5875a79878eccd721e
2023-07-10 12:25:38 -07:00
Melissa Jost
051801a7bf misc: Add workflow files to develop
This copies our .github folder from stable into the develop
branch, which allows the GitHub Actions workflows to run
on both branches

Change-Id: I864939f86f0fbd6d73676f137df2670d3eac1d1a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/71860
Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
2023-06-28 16:19:59 +00:00