Files
gem5/.github/workflows/weekly-tests.yaml
Bobby R. Bruce 866b51a1cc misc,tests: Increase Weekly GPU test timeout
The Weekly GPU tests are failing due to a timeout but I found the testing
timeout was set to 5 hours and  we have been frequently close to reaching this
but have recently changes the test enought o consistently go over.

 The main two things that appear to have caused this are:

1. Moving the X86_VEGA compilation into the the same step as the running of
   the tests.
2. Reducing the number of threads per GitHub Actions runner, thus slowing
   job execution.

In addition we've added more tests to this weekly GPU suite though I don't
believe have got to running these tests yet. The timeout appears to
always been triggered before this.

This PR increases the timout to 3 days and moves the compilation into a
seperate step.
2024-10-04 06:12:13 -07:00

116 lines
4.5 KiB
YAML

---
# This workflow runs all of the very-long tests within main.py
name: Weekly Tests
on:
# This is triggered weekly via the 'scheduler.yaml' workflow.
workflow_dispatch:
jobs:
# start running the very-long tests
testlib-very-long-tests:
strategy:
fail-fast: false
matrix:
test-type: [gem5_library_example_tests, gem5_resources, stdlib, parsec_benchmarks, x86_boot_tests]
runs-on: [self-hosted, linux, x64]
container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest
timeout-minutes: 4320 # 3 days
steps:
- name: Clean runner
run: rm -rf ./* || true rm -rf ./.??* || true rm -rf ~/.cache || true
- uses: actions/checkout@v4
- name: Cache build/ALL
uses: actions/cache@v4
with:
path: build/ALL
key: testlib-build-all-${{ hashFiles('src/**') }}
restore-keys: |
testlib-build-all
- name: very-long ${{ matrix.test-type }}
working-directory: ${{ github.workspace }}/tests
run: ./main.py run gem5/${{ matrix.test-type }} --length very-long -j$(nproc) -vv
- name: upload results
if: success() || failure()
uses: actions/upload-artifact@v4
env:
MY_STEP_VAR: ${{ matrix.test-type }}_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 }}."
gpu-tests:
runs-on: [self-hosted, linux, x64]
container: ghcr.io/gem5/gcn-gpu:latest
timeout-minutes: 4320 # 3 days
steps:
- uses: actions/checkout@v4
with:
ref: develop
- name: Cache build/VEGA_X86
uses: actions/cache@v4
with:
path: build/VEGA_X86
key: testlib-build-vega-${{ hashFiles('src/**') }}
restore-keys: |
testlib-build-vega
- name: Build VEGA_X86/gem5.opt
working-directory: ${{ github.workspace }}
run: scons build/VEGA_X86/gem5.opt -j $(nproc)
- name: Run Testlib GPU Tests
working-directory: ${{ github.workspace }}/tests
run: ./main.py run --length=very-long -vvv --skip-build -t $(nproc) --host gcn_gpu gem5/gpu
- name: Upload results
if: success() || failure()
uses: actions/upload-artifact@v4.0.0
with:
name: gpu_tests_${{github.sha}}_RUN_${{github.run_id}}_ATTEMPT_${{github.run_attempt}}
path: tests/testing-results
retention-days: 7
dramsys-tests:
runs-on: [self-hosted, linux, x64]
container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest
timeout-minutes: 4320 # 3 days
steps:
- uses: actions/checkout@v4
- name: Checkout DRAMSys
working-directory: ${{ github.workspace }}/ext/dramsys
run: git clone https://github.com/tukl-msd/DRAMSys --branch v5.0 --depth 1 DRAMSys
# gem5 is built separately because it depends on the DRAMSys library
- name: Build gem5
working-directory: ${{ github.workspace }}
run: scons build/ALL/gem5.opt -j $(nproc)
- name: Run DRAMSys Checks
working-directory: ${{ github.workspace }}
run: |
./build/ALL/gem5.opt configs/example/gem5_library/dramsys/arm-hello-dramsys.py
./build/ALL/gem5.opt configs/example/gem5_library/dramsys/dramsys-traffic.py
./build/ALL/gem5.opt configs/example/dramsys.py
weekly-tests:
# The dummy job is used to indicate whether the weekly tests have
# passed or not. This can be used as status check for pull requests.
# I.e., if we want to stop pull requests from being merged if the
# weekly tests are failing we can add this job as a required status
# check.
runs-on: ubuntu-latest
needs:
- testlib-very-long-tests
- dramsys-tests
- gpu-tests
steps:
- run: echo "This weekly tests have passed."