MJ
Melissa Jost (Gerrit)
Wed, Jun 28, 2023 4:20 PM
Melissa Jost has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/71860?usp=email )
Change subject: misc: Add workflow files to develop
......................................................................
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
A .github/workflows/ci-tests.yaml
A .github/workflows/compiler-tests.yaml
A .github/workflows/daily-tests.yaml
A .github/workflows/weekly-tests.yaml
4 files changed, 1,186 insertions(+), 0 deletions(-)
Approvals:
Bobby Bruce: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/.github/workflows/ci-tests.yaml
b/.github/workflows/ci-tests.yaml
new file mode 100644
index 0000000..61ba4b5
--- /dev/null
+++ b/.github/workflows/ci-tests.yaml
@@ -0,0 +1,80 @@
+# This workflow runs after a pull-request has been approved by a reviewer.
+
+name: CI Tests
+
+on:
- pull_request:
- types: [opened, edited, synchronize, ready_for_review]
+jobs:
- pre-commit:
-
runs on github hosted runner
- runs-on: ubuntu-22.04
- steps:
-
- uses: actions/checkout@v3
-
- uses: actions/setup-python@v3
-
- build-gem5:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: pre-commit # only runs if pre-commit passes
- outputs:
-
artifactname: ${{ steps.name.outputs.test }}
- steps:
-
- uses: actions/checkout@v3
-
- id: name
-
run: echo "test=$(date +"%Y-%m-%d_%H.%M.%S")-artifact" >>
$GITHUB_OUTPUT
+
-
- name: Build gem5
-
run: |
-
scons build/ALL/gem5.opt -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.name.outputs.test }}
-
path: build/ALL/gem5.opt
-
- run: echo "This job's status is ${{ job.status }}."
- unittests-all-opt:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: pre-commit # only runs if pre-commit passes
- timeout-minutes: 60
- steps:
-
- uses: actions/checkout@v3
-
- name: CI Unittests
-
working-directory: ${{ github.workspace }}
-
run: scons build/ALL/unittests.opt -j $(nproc)
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-quick:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [pre-commit, build-gem5]
- timeout-minutes: 360 # 6 hours
- steps:
-
- uses: actions/checkout@v3
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.artifactname}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: The TestLib CI Tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run --skip-build -vv
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
- name: upload zip
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
diff --git a/.github/workflows/compiler-tests.yaml
b/.github/workflows/compiler-tests.yaml
new file mode 100644
index 0000000..52569e2
--- /dev/null
+++ b/.github/workflows/compiler-tests.yaml
@@ -0,0 +1,52 @@
+# This workflow runs all of the compiler tests
+
+name: Compiler Tests
+run-name: ${{ github.actor }} is running compiler tests
+
+
+on:
-
Runs every Friday from 7AM UTC
- schedule:
-
-
Allows us to manually start workflow for testing
- workflow_dispatch:
+jobs:
gcc-version-9, gcc-version-8, gcc-version-7, clang-version-14,
clang-version-13, clang-version-12, clang-version-11, clang-version-10,
clang-version-9, clang-version-8, clang-version-7, clang-version-6.0,
ubuntu-18.04_all-dependencies, ubuntu-20.04_all-dependencies,
ubuntu-22.04_all-dependencies, ubuntu-22.04_min-dependencies]
-
opts: [.opt, .fast]
- runs-on: [self-hosted, linux, x64, run]
- timeout-minutes: 2880 # 48 hours
- container: gcr.io/gem5-test/${{ matrix.image }}:latest
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- name: Compile build/ALL/gem5${{ matrix.opts }} with ${{ matrix.image
}}
-
run: /usr/bin/env python3 /usr/bin/scons --ignore-style
build/ALL/gem5${{ matrix.opts }}
gem5 compilations.
ARM_MESI_Three_Level_HTM, ARM_MOESI_hammer, Garnet_standalone, GCN3_X86,
MIPS, 'NULL', NULL_MESI_Two_Level, NULL_MOESI_CMP_directory,
NULL_MOESI_CMP_token, NULL_MOESI_hammer, POWER, RISCV, SPARC, X86,
X86_MI_example, X86_MOESI_AMD_Base]
-
image: [gcc-version-12, clang-version-14]
-
opts: [.opt]
- runs-on: [self-hosted, linux, x64, run]
- timeout-minutes: 2880 # 48 hours
- container: gcr.io/gem5-test/${{ matrix.image }}:latest
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- name: Compile build/${{ matrix.gem5-compilation }}/gem5${{
matrix.opts }} with ${{ matrix.image }}
-
run: /usr/bin/env python3 /usr/bin/scons --ignore-style build/${{
matrix.gem5-compilation }}/gem5${{ matrix.opts }}
diff --git a/.github/workflows/daily-tests.yaml
b/.github/workflows/daily-tests.yaml
new file mode 100644
index 0000000..5fab058
--- /dev/null
+++ b/.github/workflows/daily-tests.yaml
@@ -0,0 +1,878 @@
+# This workflow runs all of the long tests within main.py, extra tests in
nightly.sh, and unittests
+
+name: Daily Tests
+
+on:
-
Runs every day from 7AM UTC
- schedule:
-
+jobs:
+# building all necessary versions of gem5
- build-gem5:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL" >> $GITHUB_OUTPUT
-
- name: Build gem5
-
run: |
-
scons build/ALL/gem5.opt -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/ALL/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-ALL_CHI:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL_CHI" >>
$GITHUB_OUTPUT
$(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/ALL_CHI/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-ARM:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ARM" >> $GITHUB_OUTPUT
-
- name: Build gem5
-
run: |
-
scons build/ARM/gem5.opt -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/ARM/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-ALL_MSI:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL_MSI" >>
$GITHUB_OUTPUT
$(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/ALL_MSI/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-ALL_MESI_Two_Level:
- runs-on: [self-hosted, linux, x64, build,]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL_MESI_Two_Level"
PROTOCOL=MESI_Two_Level -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/ALL_MESI_Two_Level/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-NULL:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-NULL" >>
$GITHUB_OUTPUT
-
- name: Build gem5
-
run: |
-
scons build/NULL/gem5.opt -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/NULL/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-NULL_MI_example:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-NULL_MI_example" >>
$GITHUB_OUTPUT
PROTOCOL=MI_example -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/NULL_MI_example/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-RISCV:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-RISCV" >>
$GITHUB_OUTPUT
-
- name: Build gem5
-
run: |
-
scons build/RISCV/gem5.opt -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/RISCV/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
- build-gem5-VEGA_X86:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-VEGA_X86" >>
$GITHUB_OUTPUT
-
- name: Build gem5
-
run: |
-
scons build/VEGA_X86/gem5.opt -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/VEGA_X86/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
-
This runs the unit tests for the build/ALL/unittests.debug build.
- unittests-all-debug:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- timeout-minutes: 60
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- name: ALL/unittests.debug UnitTests
-
run: |
-
ls
-
scons build/ALL/unittests.debug -j $(nproc)
-
This runs the unit tests for the build/ALL/unittests.fast build.
- unittests-all-fast:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- timeout-minutes: 60
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- name: ALL/unittests.fast UnitTests
-
run: |
-
ls
-
scons build/ALL/unittests.fast -j $(nproc)
+# start running all of the long tests
- testlib-long-arm-boot-tests:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5, build-gem5-ALL_CHI]
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-ALL_CHI.outputs.build-name}}
-
path: build/ALL_CHI
-
- run: chmod u+x build/ALL_CHI/gem5.opt
-
- name: long arm-boot-tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/arm-boot-tests --length=long --skip-build
-vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-fs:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5, build-gem5-ARM]
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-ARM.outputs.build-name}}
-
path: build/ARM
-
- run: chmod u+x build/ARM/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/fs --length=long --skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-gem5_library_example_tests:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5, build-gem5-ALL_MESI_Two_Level]
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-ALL_MESI_Two_Level.outputs.build-name}}
-
path: build/ALL_MESI_Two_Level
-
- run: chmod u+x build/ALL_MESI_Two_Level/gem5.opt
-
- name: long gem5_library_example_tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/gem5_library_example_tests --length=long
--skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-gpu:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5, build-gem5-VEGA_X86]
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-VEGA_X86.outputs.build-name}}
-
path: build/VEGA_X86
-
- run: chmod u+x build/VEGA_X86/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/gpu --length=long --skip-build -vv -t
$(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-insttest_se:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/insttest_se --length=long --skip-build -vv
-t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+# kvm tests don't work on github actions
-
testlib-long-kvm-fork-tests:
-
runs-on: [self-hosted, linux, x64, run]
-
container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
-
needs: build-gem5
-
timeout-minutes: 1440 # 24 hours
-
steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{ env.artifact-name }}
-
path: build/ALL/gem5.opt
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: long kvm-fork-tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/kvm-fork-tests --length=long --skip-build
-vv -t $(nproc)
-
- uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: tests/testing-results
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
-
testlib-long-kvm-switch-tests:
-
runs-on: [self-hosted, linux, x64, run]
-
container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
-
needs: build-gem5
-
timeout-minutes: 1440 # 24 hours
-
steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{ env.artifact-name }}
-
path: build/ALL/gem5.opt
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: long kvm-switch-tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/kvm-switch-tests --length=long
--skip-build -vv -t $(nproc)
-
- uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: tests/testing-results
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-learning_gem5:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5-ALL_MSI
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-ALL_MSI.outputs.build-name}}
-
path: build/ALL_MSI
-
- run: chmod u+x build/ALL_MSI/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/learning_gem5 --length=long --skip-build -vv
-t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-m5_threads:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/m5threads_test_atomic --length=long
--skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-memory:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5-NULL
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-NULL.outputs.build-name}}
-
path: build/NULL
-
- run: chmod u+x build/NULL/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/memory --length=long --skip-build -vv -t
$(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-multi_isa:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5-ARM, build-gem5-VEGA_X86, build-gem5-RISCV]
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-ARM.outputs.build-name}}
-
path: build/ARM
-
- run: chmod u+x build/ARM/gem5.opt
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-VEGA_X86.outputs.build-name}}
-
path: build/VEGA_X86
-
- run: chmod u+x build/VEGA_X86/gem5.opt
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-RISCV.outputs.build-name}}
-
path: build/RISCV
-
- run: chmod u+x build/RISCV/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/multi_isa --length=long --skip-build -vv -t
$(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-replacement-policies:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5-NULL_MI_example
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-NULL_MI_example.outputs.build-name}}
-
path: build/NULL_MI_example
-
- run: chmod u+x build/NULL_MI_example/gem5.opt
-
- name: long replacement-policies
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/replacement-policies --length=long
--skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-riscv-boot-tests:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: long riscv-boot-tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/riscv-boot-tests --length=long --skip-build
-vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-stdlib:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5-ARM, build-gem5-VEGA_X86, build-gem5-RISCV]
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-ARM.outputs.build-name}}
-
path: build/ARM
-
- run: chmod u+x build/ARM/gem5.opt
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-VEGA_X86.outputs.build-name}}
-
path: build/VEGA_X86
-
- run: chmod u+x build/VEGA_X86/gem5.opt
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5-RISCV.outputs.build-name}}
-
path: build/RISCV
-
- run: chmod u+x build/RISCV/gem5.opt
-
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/stdlib --length=long --skip-build -vv -t
$(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-x86-boot-tests:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5
- timeout-minutes: 1440 # 24 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: long x86-boot-tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/x86-boot-tests --length=long --skip-build
-vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
-
This runs the SST-gem5 integration compilation and tests it with
-
ext/sst/sst/example.py.
- sst-test:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/sst-env:latest
- timeout-minutes: 180
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- name: Build RISCV/libgem5_opt.so with SST
-
run: scons build/RISCV/libgem5_opt.so --without-tcmalloc
--duplicate-sources --ignore-style -j $(nproc)
-
-
working-directory: ${{ github.workspace }}/ext/sst
-
run: make -j $(nproc)
-
-
working-directory: ${{ github.workspace }}/ext/sst
-
run: sst --add-lib-path=./ sst/example.py
-
This runs the gem5 within SystemC ingration and runs a simple
hello-world
-
simulation with it.
- systemc-test:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/systemc-env:latest
- timeout-minutes: 180
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
-
run: scons build/ARM/gem5.opt --ignore-style --duplicate-sources
-j$(nproc)
--without-python --without-tcmalloc USE_SYSTEMC=0 -j$(nproc)
--duplicate-sources
}}/util/systemc/gem5_within_systemc
tests/test-progs/hello/bin/arm/linux/hello
-
- name: Continue gem5 within SystemC test
-
run:
LD_LIBRARY_PATH=build/ARM/:/opt/systemc/lib-linux64/ ./util/systemc/gem5_within_systemc/gem5.opt.sc
m5out/config.ini
+
-
Runs the gem5 Nighyly GPU tests.
- gpu-tests:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/gcn-gpu:latest
- timeout-minutes: 720 # 12 hours
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- name: Compile build/GCN3_X86/gem5.opt
-
run: scons build/GCN3_X86/gem5.opt -j $(nproc)
-
- name: Get Square test-prog from gem5-resources
-
uses: wei/wget@v1
-
with:
-
args: -q
http://dist.gem5.org/dist/develop/test-progs/square/square # Removed -N bc
it wasn't available within actions, should be okay bc workspace is clean
every time: https://github.com/coder/sshcode/issues/102
--reg-alloc-policy=dynamic -n3 -c square
-
- name: Get allSyncPrims-1kernel from gem5-resources
-
uses: wei/wget@v1
-
with:
-
args: -q
http://dist.gem5.org/dist/develop/test-progs/heterosync/gcn3/allSyncPrims-1kernel
Removed -N bc it wasn't available within actions, should be okay bc
workspace is clean every time
--reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel
--options="sleepMutex 10 16 4"
--reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel
--options="lfTreeBarrUniq 10 16 4"
diff --git a/.github/workflows/weekly-tests.yaml
b/.github/workflows/weekly-tests.yaml
new file mode 100644
index 0000000..4c3f6b5
--- /dev/null
+++ b/.github/workflows/weekly-tests.yaml
@@ -0,0 +1,176 @@
+# This workflow runs all of the very-long tests within main.py
+
+name: Weekly Tests
+
+on:
-
Runs every Sunday from 7AM UTC
- schedule:
-
-
Allows us to manually start workflow for testing
- workflow_dispatch:
+jobs:
- build-gem5:
- runs-on: [self-hosted, linux, x64, build]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- outputs:
-
build-name: ${{ steps.artifact-name.outputs.name }}
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- id: artifact-name
-
run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL" >> $GITHUB_OUTPUT
-
- name: Build gem5
-
run: |
-
scons build/ALL/gem5.opt -j $(nproc)
-
- uses: actions/upload-artifact@v3
-
with:
-
name: ${{ steps.artifact-name.outputs.name }}
-
path: build/ALL/gem5.opt
-
retention-days: 5
-
- run: echo "This job's status is ${{ job.status }}."
+# start running the very-long tests
- testlib-very-long-gem5_library_example_tests:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5]
- timeout-minutes: 4320 # 3 days
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: very-long gem5_library_example_tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/gem5_library_example_tests --length
very-long --skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-long-gem5-resources:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: [build-gem5]
- timeout-minutes: 4320 # 3 days
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: very-long gem5-resources tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/gem5-resources --length very-long
--skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-very-long-parsec-benchmarks:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5
- timeout-minutes: 4320 # 3 days
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: very-long x86-boot-tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/x86-boot-tests --length very-long
--skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
-
with:
-
name: ${{ env.MY_STEP_VAR }}
-
path: output.zip
-
retention-days: 7
-
- run: echo "This job's status is ${{ job.status }}."
- testlib-very-long-x86-boot-tests:
- runs-on: [self-hosted, linux, x64, run]
- container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
- needs: build-gem5
- timeout-minutes: 4320 # 3 days
- steps:
-
- uses: actions/checkout@v3
-
with:
-
# Scheduled workflows run on the default branch by default. We
-
# therefore need to explicitly checkout the develop branch.
-
ref: develop
-
- uses: actions/download-artifact@v3
-
with:
-
name: ${{needs.build-gem5.outputs.build-name}}
-
path: build/ALL
-
- run: chmod u+x build/ALL/gem5.opt
-
- name: very-long x86-boot-tests
-
working-directory: ${{ github.workspace }}/tests
-
run: ./main.py run gem5/x86-boot-tests --length very-long
--skip-build -vv -t $(nproc)
-
- name: create zip of results
-
if: success() || failure()
-
run: |
-
apt-get -y install zip
-
zip -r output.zip tests/testing-results
-
-
if: success() || failure()
-
uses: actions/upload-artifact@v3
-
env:
-
MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/71860?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I864939f86f0fbd6d73676f137df2670d3eac1d1a
Gerrit-Change-Number: 71860
Gerrit-PatchSet: 3
Gerrit-Owner: Melissa Jost melissakjost@gmail.com
Gerrit-Reviewer: Bobby Bruce bbruce@ucdavis.edu
Gerrit-Reviewer: Jason Lowe-Power jason@lowepower.com
Gerrit-Reviewer: Melissa Jost melissakjost@gmail.com
Gerrit-Reviewer: kokoro noreply+kokoro@google.com
Gerrit-CC: kokoro noreply+kokoro@google.com
Melissa Jost has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/71860?usp=email )
Change subject: misc: Add workflow files to develop
......................................................................
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>
---
A .github/workflows/ci-tests.yaml
A .github/workflows/compiler-tests.yaml
A .github/workflows/daily-tests.yaml
A .github/workflows/weekly-tests.yaml
4 files changed, 1,186 insertions(+), 0 deletions(-)
Approvals:
Bobby Bruce: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/.github/workflows/ci-tests.yaml
b/.github/workflows/ci-tests.yaml
new file mode 100644
index 0000000..61ba4b5
--- /dev/null
+++ b/.github/workflows/ci-tests.yaml
@@ -0,0 +1,80 @@
+# This workflow runs after a pull-request has been approved by a reviewer.
+
+name: CI Tests
+
+on:
+ pull_request:
+ types: [opened, edited, synchronize, ready_for_review]
+
+
+jobs:
+ pre-commit:
+ # runs on github hosted runner
+ runs-on: ubuntu-22.04
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v3
+ - uses: pre-commit/action@v3.0.0
+
+ build-gem5:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: pre-commit # only runs if pre-commit passes
+ outputs:
+ artifactname: ${{ steps.name.outputs.test }}
+ steps:
+ - uses: actions/checkout@v3
+ - id: name
+ run: echo "test=$(date +"%Y-%m-%d_%H.%M.%S")-artifact" >>
$GITHUB_OUTPUT
+
+ - name: Build gem5
+ run: |
+ scons build/ALL/gem5.opt -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.name.outputs.test }}
+ path: build/ALL/gem5.opt
+ - run: echo "This job's status is ${{ job.status }}."
+
+ unittests-all-opt:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: pre-commit # only runs if pre-commit passes
+ timeout-minutes: 60
+ steps:
+ - uses: actions/checkout@v3
+ - name: CI Unittests
+ working-directory: ${{ github.workspace }}
+ run: scons build/ALL/unittests.opt -j $(nproc)
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-quick:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [pre-commit, build-gem5]
+ timeout-minutes: 360 # 6 hours
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.artifactname}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: The TestLib CI Tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run --skip-build -vv
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
diff --git a/.github/workflows/compiler-tests.yaml
b/.github/workflows/compiler-tests.yaml
new file mode 100644
index 0000000..52569e2
--- /dev/null
+++ b/.github/workflows/compiler-tests.yaml
@@ -0,0 +1,52 @@
+# This workflow runs all of the compiler tests
+
+name: Compiler Tests
+run-name: ${{ github.actor }} is running compiler tests
+
+
+on:
+ # Runs every Friday from 7AM UTC
+ schedule:
+ - cron: '00 7 * * 5'
+ # Allows us to manually start workflow for testing
+ workflow_dispatch:
+
+jobs:
+ # replication of compiler-tests.sh
+ all-compilers:
+ strategy:
+ matrix:
+ image: [gcc-version-12, gcc-version-11, gcc-version-10,
gcc-version-9, gcc-version-8, gcc-version-7, clang-version-14,
clang-version-13, clang-version-12, clang-version-11, clang-version-10,
clang-version-9, clang-version-8, clang-version-7, clang-version-6.0,
ubuntu-18.04_all-dependencies, ubuntu-20.04_all-dependencies,
ubuntu-22.04_all-dependencies, ubuntu-22.04_min-dependencies]
+ opts: [.opt, .fast]
+ runs-on: [self-hosted, linux, x64, run]
+ timeout-minutes: 2880 # 48 hours
+ container: gcr.io/gem5-test/${{ matrix.image }}:latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - name: Compile build/ALL/gem5${{ matrix.opts }} with ${{ matrix.image
}}
+ run: /usr/bin/env python3 /usr/bin/scons --ignore-style
build/ALL/gem5${{ matrix.opts }}
+ timeout-minutes: 600 # 10 hours
+
+ # Tests the two latest gcc and clang supported compilers against all
gem5 compilations.
+ latest-compilers-all-gem5-builds:
+ strategy:
+ matrix:
+ gem5-compilation: [ARM, ARM_MESI_Three_Level,
ARM_MESI_Three_Level_HTM, ARM_MOESI_hammer, Garnet_standalone, GCN3_X86,
MIPS, 'NULL', NULL_MESI_Two_Level, NULL_MOESI_CMP_directory,
NULL_MOESI_CMP_token, NULL_MOESI_hammer, POWER, RISCV, SPARC, X86,
X86_MI_example, X86_MOESI_AMD_Base]
+ image: [gcc-version-12, clang-version-14]
+ opts: [.opt]
+ runs-on: [self-hosted, linux, x64, run]
+ timeout-minutes: 2880 # 48 hours
+ container: gcr.io/gem5-test/${{ matrix.image }}:latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - name: Compile build/${{ matrix.gem5-compilation }}/gem5${{
matrix.opts }} with ${{ matrix.image }}
+ run: /usr/bin/env python3 /usr/bin/scons --ignore-style build/${{
matrix.gem5-compilation }}/gem5${{ matrix.opts }}
+ timeout-minutes: 600 # 10 hours
diff --git a/.github/workflows/daily-tests.yaml
b/.github/workflows/daily-tests.yaml
new file mode 100644
index 0000000..5fab058
--- /dev/null
+++ b/.github/workflows/daily-tests.yaml
@@ -0,0 +1,878 @@
+# This workflow runs all of the long tests within main.py, extra tests in
nightly.sh, and unittests
+
+name: Daily Tests
+
+on:
+ # Runs every day from 7AM UTC
+ schedule:
+ - cron: '0 7 * * *'
+
+jobs:
+# building all necessary versions of gem5
+ build-gem5:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL" >> $GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/ALL/gem5.opt -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/ALL/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-ALL_CHI:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL_CHI" >>
$GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/ALL_CHI/gem5.opt --default=ALL PROTOCOL=CHI -j
$(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/ALL_CHI/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-ARM:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ARM" >> $GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/ARM/gem5.opt -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/ARM/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-ALL_MSI:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL_MSI" >>
$GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/ALL_MSI/gem5.opt --default=ALL PROTOCOL=MSI -j
$(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/ALL_MSI/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-ALL_MESI_Two_Level:
+ runs-on: [self-hosted, linux, x64, build,]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL_MESI_Two_Level"
>> $GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/ALL_MESI_Two_Level/gem5.opt --default=ALL
PROTOCOL=MESI_Two_Level -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/ALL_MESI_Two_Level/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-NULL:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-NULL" >>
$GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/NULL/gem5.opt -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/NULL/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-NULL_MI_example:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-NULL_MI_example" >>
$GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/NULL_MI_example/gem5.opt --default=NULL
PROTOCOL=MI_example -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/NULL_MI_example/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-RISCV:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-RISCV" >>
$GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/RISCV/gem5.opt -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/RISCV/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+ build-gem5-VEGA_X86:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-VEGA_X86" >>
$GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/VEGA_X86/gem5.opt -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/VEGA_X86/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+
+ # This runs the unit tests for the build/ALL/unittests.debug build.
+ unittests-all-debug:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ timeout-minutes: 60
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - name: ALL/unittests.debug UnitTests
+ run: |
+ ls
+ scons build/ALL/unittests.debug -j $(nproc)
+
+ # This runs the unit tests for the build/ALL/unittests.fast build.
+ unittests-all-fast:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ timeout-minutes: 60
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - name: ALL/unittests.fast UnitTests
+ run: |
+ ls
+ scons build/ALL/unittests.fast -j $(nproc)
+
+# start running all of the long tests
+ testlib-long-arm-boot-tests:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5, build-gem5-ALL_CHI]
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-ALL_CHI.outputs.build-name}}
+ path: build/ALL_CHI
+ - run: chmod u+x build/ALL_CHI/gem5.opt
+ - name: long arm-boot-tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/arm-boot-tests --length=long --skip-build
-vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-fs:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5, build-gem5-ARM]
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-ARM.outputs.build-name}}
+ path: build/ARM
+ - run: chmod u+x build/ARM/gem5.opt
+ - name: long fs
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/fs --length=long --skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-gem5_library_example_tests:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5, build-gem5-ALL_MESI_Two_Level]
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-ALL_MESI_Two_Level.outputs.build-name}}
+ path: build/ALL_MESI_Two_Level
+ - run: chmod u+x build/ALL_MESI_Two_Level/gem5.opt
+ - name: long gem5_library_example_tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/gem5_library_example_tests --length=long
--skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-gpu:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5, build-gem5-VEGA_X86]
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-VEGA_X86.outputs.build-name}}
+ path: build/VEGA_X86
+ - run: chmod u+x build/VEGA_X86/gem5.opt
+ - name: long gpu
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/gpu --length=long --skip-build -vv -t
$(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-insttest_se:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: long insttest_se
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/insttest_se --length=long --skip-build -vv
-t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+# kvm tests don't work on github actions
+ # testlib-long-kvm-fork-tests:
+ # runs-on: [self-hosted, linux, x64, run]
+ # container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ # needs: build-gem5
+ # timeout-minutes: 1440 # 24 hours
+ # steps:
+ # - uses: actions/checkout@v3
+ # with:
+ # # Scheduled workflows run on the default branch by default. We
+ # # therefore need to explicitly checkout the develop branch.
+ # ref: develop
+ # - uses: actions/download-artifact@v3
+ # with:
+ # name: ${{ env.artifact-name }}
+ # path: build/ALL/gem5.opt
+ # - run: chmod u+x build/ALL/gem5.opt
+ # - name: long kvm-fork-tests
+ # working-directory: ${{ github.workspace }}/tests
+ # run: ./main.py run gem5/kvm-fork-tests --length=long --skip-build
-vv -t $(nproc)
+ # - uses: actions/upload-artifact@v3
+ # env:
+ # MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ # with:
+ # name: ${{ env.MY_STEP_VAR }}
+ # path: tests/testing-results
+ # retention-days: 7
+ # - run: echo "This job's status is ${{ job.status }}."
+
+ # testlib-long-kvm-switch-tests:
+ # runs-on: [self-hosted, linux, x64, run]
+ # container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ # needs: build-gem5
+ # timeout-minutes: 1440 # 24 hours
+ # steps:
+ # - uses: actions/checkout@v3
+ # with:
+ # # Scheduled workflows run on the default branch by default. We
+ # # therefore need to explicitly checkout the develop branch.
+ # ref: develop
+ # - uses: actions/download-artifact@v3
+ # with:
+ # name: ${{ env.artifact-name }}
+ # path: build/ALL/gem5.opt
+ # - run: chmod u+x build/ALL/gem5.opt
+ # - name: long kvm-switch-tests
+ # working-directory: ${{ github.workspace }}/tests
+ # run: ./main.py run gem5/kvm-switch-tests --length=long
--skip-build -vv -t $(nproc)
+ # - uses: actions/upload-artifact@v3
+ # env:
+ # MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ # with:
+ # name: ${{ env.MY_STEP_VAR }}
+ # path: tests/testing-results
+ # retention-days: 7
+ # - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-learning_gem5:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5-ALL_MSI
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-ALL_MSI.outputs.build-name}}
+ path: build/ALL_MSI
+ - run: chmod u+x build/ALL_MSI/gem5.opt
+ - name: long learning_gem5
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/learning_gem5 --length=long --skip-build -vv
-t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-m5_threads:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: long m5_threads
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/m5threads_test_atomic --length=long
--skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-memory:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5-NULL
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-NULL.outputs.build-name}}
+ path: build/NULL
+ - run: chmod u+x build/NULL/gem5.opt
+ - name: long memory
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/memory --length=long --skip-build -vv -t
$(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-multi_isa:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5-ARM, build-gem5-VEGA_X86, build-gem5-RISCV]
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-ARM.outputs.build-name}}
+ path: build/ARM
+ - run: chmod u+x build/ARM/gem5.opt
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-VEGA_X86.outputs.build-name}}
+ path: build/VEGA_X86
+ - run: chmod u+x build/VEGA_X86/gem5.opt
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-RISCV.outputs.build-name}}
+ path: build/RISCV
+ - run: chmod u+x build/RISCV/gem5.opt
+ - name: long multi_isa
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/multi_isa --length=long --skip-build -vv -t
$(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-replacement-policies:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5-NULL_MI_example
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-NULL_MI_example.outputs.build-name}}
+ path: build/NULL_MI_example
+ - run: chmod u+x build/NULL_MI_example/gem5.opt
+ - name: long replacement-policies
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/replacement-policies --length=long
--skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-riscv-boot-tests:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: long riscv-boot-tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/riscv-boot-tests --length=long --skip-build
-vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-stdlib:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5-ARM, build-gem5-VEGA_X86, build-gem5-RISCV]
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-ARM.outputs.build-name}}
+ path: build/ARM
+ - run: chmod u+x build/ARM/gem5.opt
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-VEGA_X86.outputs.build-name}}
+ path: build/VEGA_X86
+ - run: chmod u+x build/VEGA_X86/gem5.opt
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5-RISCV.outputs.build-name}}
+ path: build/RISCV
+ - run: chmod u+x build/RISCV/gem5.opt
+ - name: long stdlib
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/stdlib --length=long --skip-build -vv -t
$(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-long-x86-boot-tests:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5
+ timeout-minutes: 1440 # 24 hours
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: long x86-boot-tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/x86-boot-tests --length=long --skip-build
-vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ # This runs the SST-gem5 integration compilation and tests it with
+ # ext/sst/sst/example.py.
+ sst-test:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/sst-env:latest
+ timeout-minutes: 180
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - name: Build RISCV/libgem5_opt.so with SST
+ run: scons build/RISCV/libgem5_opt.so --without-tcmalloc
--duplicate-sources --ignore-style -j $(nproc)
+ - name: Compile ext/sst
+ working-directory: ${{ github.workspace }}/ext/sst
+ run: make -j $(nproc)
+ - name: Run SST test
+ working-directory: ${{ github.workspace }}/ext/sst
+ run: sst --add-lib-path=./ sst/example.py
+
+ # This runs the gem5 within SystemC ingration and runs a simple
hello-world
+ # simulation with it.
+ systemc-test:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/systemc-env:latest
+ timeout-minutes: 180
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - name: Build ARM/gem5.opt
+ run: scons build/ARM/gem5.opt --ignore-style --duplicate-sources
-j$(nproc)
+ - name: Build ARM/libgem5_opt.so
+ run: scons build/ARM/libgem5_opt.so --with-cxx-config
--without-python --without-tcmalloc USE_SYSTEMC=0 -j$(nproc)
--duplicate-sources
+ - name: Compile gem5 withing SystemC
+ working-directory: ${{ github.workspace
}}/util/systemc/gem5_within_systemc
+ run: make
+ - name: Run gem5 within SystemC test
+ run: ./build/ARM/gem5.opt configs/deprecated/example/se.py -c
tests/test-progs/hello/bin/arm/linux/hello
+ - name: Continue gem5 within SystemC test
+ run:
LD_LIBRARY_PATH=build/ARM/:/opt/systemc/lib-linux64/ ./util/systemc/gem5_within_systemc/gem5.opt.sc
m5out/config.ini
+
+ # Runs the gem5 Nighyly GPU tests.
+ gpu-tests:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/gcn-gpu:latest
+ timeout-minutes: 720 # 12 hours
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - name: Compile build/GCN3_X86/gem5.opt
+ run: scons build/GCN3_X86/gem5.opt -j $(nproc)
+ - name: Get Square test-prog from gem5-resources
+ uses: wei/wget@v1
+ with:
+ args: -q
http://dist.gem5.org/dist/develop/test-progs/square/square # Removed -N bc
it wasn't available within actions, should be okay bc workspace is clean
every time: https://github.com/coder/sshcode/issues/102
+ - name: Run Square test with GCN3_X86/gem5.opt (SE mode)
+ run: |
+ mkdir -p tests/testing-results
+ ./build/GCN3_X86/gem5.opt configs/example/apu_se.py
--reg-alloc-policy=dynamic -n3 -c square
+ - name: Get allSyncPrims-1kernel from gem5-resources
+ uses: wei/wget@v1
+ with:
+ args: -q
http://dist.gem5.org/dist/develop/test-progs/heterosync/gcn3/allSyncPrims-1kernel
# Removed -N bc it wasn't available within actions, should be okay bc
workspace is clean every time
+ - name: Run allSyncPrims-1kernel sleepMutex test with
GCN3_X86/gem5.opt (SE mode)
+ run: ./build/GCN3_X86/gem5.opt configs/example/apu_se.py
--reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel
--options="sleepMutex 10 16 4"
+ - name: Run allSyncPrims-1kernel lfTreeBarrUsing test with
GCN3_X86/gem5.opt (SE mode)
+ run: ./build/GCN3_X86/gem5.opt configs/example/apu_se.py
--reg-alloc-policy=dynamic -n3 -c allSyncPrims-1kernel
--options="lfTreeBarrUniq 10 16 4"
diff --git a/.github/workflows/weekly-tests.yaml
b/.github/workflows/weekly-tests.yaml
new file mode 100644
index 0000000..4c3f6b5
--- /dev/null
+++ b/.github/workflows/weekly-tests.yaml
@@ -0,0 +1,176 @@
+# This workflow runs all of the very-long tests within main.py
+
+name: Weekly Tests
+
+on:
+ # Runs every Sunday from 7AM UTC
+ schedule:
+ - cron: '00 7 * * 6'
+ # Allows us to manually start workflow for testing
+ workflow_dispatch:
+
+jobs:
+ build-gem5:
+ runs-on: [self-hosted, linux, x64, build]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ outputs:
+ build-name: ${{ steps.artifact-name.outputs.name }}
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - id: artifact-name
+ run: echo "name=$(date +"%Y-%m-%d_%H.%M.%S")-ALL" >> $GITHUB_OUTPUT
+ - name: Build gem5
+ run: |
+ scons build/ALL/gem5.opt -j $(nproc)
+ - uses: actions/upload-artifact@v3
+ with:
+ name: ${{ steps.artifact-name.outputs.name }}
+ path: build/ALL/gem5.opt
+ retention-days: 5
+ - run: echo "This job's status is ${{ job.status }}."
+
+# start running the very-long tests
+ testlib-very-long-gem5_library_example_tests:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5]
+ timeout-minutes: 4320 # 3 days
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: very-long gem5_library_example_tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/gem5_library_example_tests --length
very-long --skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+
+ testlib-long-gem5-resources:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: [build-gem5]
+ timeout-minutes: 4320 # 3 days
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: very-long gem5-resources tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/gem5-resources --length very-long
--skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-very-long-parsec-benchmarks:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5
+ timeout-minutes: 4320 # 3 days
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: very-long x86-boot-tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/x86-boot-tests --length very-long
--skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
+
+ testlib-very-long-x86-boot-tests:
+ runs-on: [self-hosted, linux, x64, run]
+ container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest
+ needs: build-gem5
+ timeout-minutes: 4320 # 3 days
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ # Scheduled workflows run on the default branch by default. We
+ # therefore need to explicitly checkout the develop branch.
+ ref: develop
+ - uses: actions/download-artifact@v3
+ with:
+ name: ${{needs.build-gem5.outputs.build-name}}
+ path: build/ALL
+ - run: chmod u+x build/ALL/gem5.opt
+ - name: very-long x86-boot-tests
+ working-directory: ${{ github.workspace }}/tests
+ run: ./main.py run gem5/x86-boot-tests --length very-long
--skip-build -vv -t $(nproc)
+ - name: create zip of results
+ if: success() || failure()
+ run: |
+ apt-get -y install zip
+ zip -r output.zip tests/testing-results
+ - name: upload zip
+ if: success() || failure()
+ uses: actions/upload-artifact@v3
+ env:
+ MY_STEP_VAR:
${{github.job}}_COMMIT.${{github.sha}}_RUN.${{github.run_id}}_ATTEMPT.${{github.run_attempt}}
+ with:
+ name: ${{ env.MY_STEP_VAR }}
+ path: output.zip
+ retention-days: 7
+ - run: echo "This job's status is ${{ job.status }}."
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/71860?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I864939f86f0fbd6d73676f137df2670d3eac1d1a
Gerrit-Change-Number: 71860
Gerrit-PatchSet: 3
Gerrit-Owner: Melissa Jost <melissakjost@gmail.com>
Gerrit-Reviewer: Bobby Bruce <bbruce@ucdavis.edu>
Gerrit-Reviewer: Jason Lowe-Power <jason@lowepower.com>
Gerrit-Reviewer: Melissa Jost <melissakjost@gmail.com>
Gerrit-Reviewer: kokoro <noreply+kokoro@google.com>
Gerrit-CC: kokoro <noreply+kokoro@google.com>