From 0b2fa9900b3754787b4fd564937b8c145bcfbd5d Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Fri, 19 Apr 2024 19:41:30 -0700 Subject: [PATCH] misc: Merge .github develop dir to stable (#1043) --- .github/workflows/ci-tests.yaml | 63 +++++++++++++++++++++------ .github/workflows/compiler-tests.yaml | 4 +- .github/workflows/daily-tests.yaml | 10 ++--- .github/workflows/docker-build.yaml | 2 +- .github/workflows/weekly-tests.yaml | 8 ++-- 5 files changed, 62 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci-tests.yaml b/.github/workflows/ci-tests.yaml index bc35583c17..a1aebe82ac 100644 --- a/.github/workflows/ci-tests.yaml +++ b/.github/workflows/ci-tests.yaml @@ -14,17 +14,17 @@ concurrency: jobs: pre-commit: # runs on github hosted runner - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest if: github.event.pull_request.draft == false steps: - uses: actions/checkout@v4 - - uses: actions/setup-python@v3 - - uses: pre-commit/action@v3.0.0 + - uses: actions/setup-python@v5 + - uses: pre-commit/action@v3.0.1 # ensures we have a change-id in every commit, needed for gerrit check-for-change-id: # runs on github hosted runner - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest if: github.event.pull_request.draft == false steps: - uses: actions/checkout@v4 @@ -50,7 +50,7 @@ jobs: unittests-all-opt: runs-on: [self-hosted, linux, x64] if: github.event.pull_request.draft == false - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest needs: [pre-commit, check-for-change-id] # only runs if pre-commit and change-id passes timeout-minutes: 60 steps: @@ -65,15 +65,15 @@ jobs: if: github.event.pull_request.draft == false # In order to make sure the environment is exactly the same, we run in # the same container we use to build gem5 and run the testlib tests. This - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest needs: [pre-commit, check-for-change-id] steps: - uses: actions/checkout@v4 - # Unfortunately the 'ubunutu-latest' image doesn't have jq installed. - # We therefore need to install it as a step here. + # Unfortunately the image doesn't have jq installed. + # We therefore need to install it as a step here. - name: Install jq - run: apt install -y jq + run: apt update && apt install -y jq - name: Get directories for testlib-quick working-directory: ${{ github.workspace }}/tests @@ -108,7 +108,7 @@ jobs: testlib-quick-gem5-builds: runs-on: [self-hosted, linux, x64] if: github.event.pull_request.draft == false - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest needs: [pre-commit, check-for-change-id, testlib-quick-matrix] strategy: matrix: @@ -138,7 +138,7 @@ jobs: testlib-quick-execution: runs-on: [self-hosted, linux, x64] if: github.event.pull_request.draft == false - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest needs: [pre-commit, check-for-change-id, testlib-quick-matrix, testlib-quick-gem5-builds] timeout-minutes: 360 # 6 hours strategy: @@ -184,12 +184,49 @@ jobs: path: tests/testing-results retention-days: 30 + pyunit: + runs-on: [self-hosted, linux, x64] + if: github.event.pull_request.draft == false + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest + needs: [pre-commit, check-for-change-id, testlib-quick-gem5-builds] + timeout-minutes: 30 + steps: + + # Checkout the repository then download the builds. + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + name: ci-tests-${{ github.run_number }}-testlib-quick-all-gem5-builds + + # Check that the gem5 binaries exist and are executable. + - name: Chmod gem5.{opt,debug,fast} to be executable + run: | + find . -name "gem5.opt" -exec chmod u+x {} \; + find . -name "gem5.debug" -exec chmod u+x {} \; + find . -name "gem5.fast" -exec chmod u+x {} \; + + # Run the pyunit tests. + # Note: these are all quick tests. + - name: Run The pyunit tests + id: run-tests + working-directory: ${{ github.workspace }}/tests + run: ./main.py run --skip-build -vv -j$(nproc) pyunit + + # Upload the tests/testing-results directory as an artifact. + - name: Upload pyunit test results + if: success() || failure() + uses: actions/upload-artifact@v4 + with: + name: ci-tests-run-${{ github.run_number }}-attempt-${{ github.run_attempt }}-pyunit-status-${{ steps.run-tests.outcome }}-output + path: tests/testing-results + retention-days: 30 + testlib-quick: # It is 'testlib-quick' which needs to pass for the pull request to be # merged. The 'testlib-quick-execution' is a matrix job which runs all the # the testlib quick tests. This job is therefore a stub which will pass if # all the testlib-quick-execution jobs pass. - runs-on: ubuntu-22.04 - needs: testlib-quick-execution + runs-on: ubuntu-latest + needs: [testlib-quick-execution, pyunit] steps: - run: echo "This job's status is ${{ job.status }}." diff --git a/.github/workflows/compiler-tests.yaml b/.github/workflows/compiler-tests.yaml index fde8f3cd44..1c1ef88fd4 100644 --- a/.github/workflows/compiler-tests.yaml +++ b/.github/workflows/compiler-tests.yaml @@ -18,7 +18,7 @@ jobs: matrix: image: [gcc-version-13, gcc-version-12, gcc-version-11, gcc-version-10, gcc-version-8, clang-version-16, clang-version-15, clang-version-14, clang-version-13, clang-version-12, clang-version-11, clang-version-10, clang-version-9, clang-version-8, clang-version-7, ubuntu-20.04_all-dependencies, - ubuntu-22.04_all-dependencies, ubuntu-22.04_min-dependencies] + ubuntu-22.04_all-dependencies, ubuntu-24.04_all-dependencies, ubuntu-24.04_min-dependencies] opts: [.opt, .fast] runs-on: [self-hosted, linux, x64] timeout-minutes: 2880 # 48 hours @@ -61,7 +61,7 @@ jobs: # I.e., if we want to stop pull requests from being merged if the # compiler tests are failing, we can add this job as a required status # check. - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest needs: - latest-compilers-all-gem5-builds - all-compilers diff --git a/.github/workflows/daily-tests.yaml b/.github/workflows/daily-tests.yaml index d74d0788fd..73788d3c9c 100644 --- a/.github/workflows/daily-tests.yaml +++ b/.github/workflows/daily-tests.yaml @@ -46,7 +46,7 @@ jobs: isa-option: 'NULL' runs-on: [self-hosted, linux, x64] needs: name-artifacts - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest steps: - uses: actions/checkout@v4 with: @@ -74,7 +74,7 @@ jobs: matrix: type: [fast, debug] runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest timeout-minutes: 60 steps: - uses: actions/checkout@v4 @@ -93,7 +93,7 @@ jobs: test-type: [arm_boot_tests, fs, gpu, insttest_se, learning_gem5, m5threads_test_atomic, memory, multi_isa, replacement_policies, riscv_boot_tests, stdlib, x86_boot_tests] runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest needs: [name-artifacts, build-gem5] timeout-minutes: 1440 # 24 hours for entire matrix to run steps: @@ -182,7 +182,7 @@ jobs: matrix: test-type: [gem5-library-example-x86-ubuntu-run-ALL-x86_64-opt, gem5-library-example-riscv-ubuntu-run-ALL-x86_64-opt, lupv-example-ALL-x86_64-opt, gem5-library-example-arm-ubuntu-run-test-ALL-x86_64-opt, gem5-library-example-riscvmatched-hello-ALL-x86_64-opt] - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest needs: [name-artifacts, build-gem5] timeout-minutes: 1440 # 24 hours steps: @@ -304,7 +304,7 @@ jobs: # I.e., if we want to stop pull requests from being merged if the # daily tests are failing we can add this job as a required status # check. - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest needs: - unittests-fast-debug - testlib-long-tests diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml index c9e259d7f4..2afa907d0d 100644 --- a/.github/workflows/docker-build.yaml +++ b/.github/workflows/docker-build.yaml @@ -6,7 +6,7 @@ on: jobs: obtain-dockerfiles: runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/weekly-tests.yaml b/.github/workflows/weekly-tests.yaml index a7a4ffbbad..3773557504 100644 --- a/.github/workflows/weekly-tests.yaml +++ b/.github/workflows/weekly-tests.yaml @@ -92,7 +92,7 @@ jobs: build-gem5: runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest outputs: build-name: ${{ steps.artifact-name.outputs.name }} steps: @@ -120,7 +120,7 @@ jobs: matrix: test-type: [gem5_library_example_tests, gem5_resources, parsec_benchmarks, x86_boot_tests] runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest needs: [build-gem5] timeout-minutes: 4320 # 3 days steps: @@ -157,7 +157,7 @@ jobs: dramsys-tests: runs-on: [self-hosted, linux, x64] - container: ghcr.io/gem5/ubuntu-22.04_all-dependencies:latest + container: ghcr.io/gem5/ubuntu-24.04_all-dependencies:latest timeout-minutes: 4320 # 3 days steps: - uses: actions/checkout@v4 @@ -187,7 +187,7 @@ jobs: # 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-22.04 + runs-on: ubuntu-latest needs: - testlib-very-long-tests - dramsys-tests