From 6966518dcca7c0da8cbff8cda23e60af2f7c3068 Mon Sep 17 00:00:00 2001 From: "Bobby R. Bruce" Date: Wed, 30 Aug 2023 17:16:12 -0700 Subject: [PATCH] misc: Copy .github directory from develop to stable Change-Id: I7755f90c1b5d81ff1cf66920f229be921d47e844 --- .github/workflows/ci-tests.yaml | 5 ++++ .github/workflows/compiler-tests.yaml | 12 ++++---- .github/workflows/daily-tests.yaml | 6 ++-- .github/workflows/docker-build.yaml | 42 +++++++++++++++++++++++++++ .github/workflows/weekly-tests.yaml | 33 ++++++++++++++++++++- 5 files changed, 88 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/docker-build.yaml diff --git a/.github/workflows/ci-tests.yaml b/.github/workflows/ci-tests.yaml index 2fb5910d44..8def494668 100644 --- a/.github/workflows/ci-tests.yaml +++ b/.github/workflows/ci-tests.yaml @@ -11,6 +11,7 @@ jobs: pre-commit: # runs on github hosted runner runs-on: ubuntu-22.04 + if: github.event.pull_request.draft == false steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v3 @@ -20,6 +21,7 @@ jobs: check-for-change-id: # runs on github hosted runner runs-on: ubuntu-22.04 + if: github.event.pull_request.draft == false steps: - uses: actions/checkout@v3 with: @@ -43,6 +45,7 @@ jobs: build-gem5: runs-on: [self-hosted, linux, x64, build] + if: github.event.pull_request.draft == false container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest needs: [pre-commit, check-for-change-id] # only runs if pre-commit and change-id passes outputs: @@ -63,6 +66,7 @@ jobs: unittests-all-opt: runs-on: [self-hosted, linux, x64, run] + if: github.event.pull_request.draft == false container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest needs: [pre-commit, check-for-change-id] # only runs if pre-commit and change-id passes timeout-minutes: 60 @@ -75,6 +79,7 @@ jobs: testlib-quick: runs-on: [self-hosted, linux, x64, run] + if: github.event.pull_request.draft == false container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest needs: [pre-commit, build-gem5, check-for-change-id] timeout-minutes: 360 # 6 hours diff --git a/.github/workflows/compiler-tests.yaml b/.github/workflows/compiler-tests.yaml index 3ae771b017..9a567653f5 100644 --- a/.github/workflows/compiler-tests.yaml +++ b/.github/workflows/compiler-tests.yaml @@ -15,11 +15,11 @@ jobs: # replication of compiler-tests.sh all-compilers: strategy: + fail-fast: false matrix: image: [gcc-version-12, gcc-version-11, gcc-version-10, gcc-version-9, gcc-version-8, 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] opts: [.opt, .fast] - runs-on: [self-hosted, linux, x64, run] - continue-on-error: true + runs-on: [self-hosted, linux, x64, build] timeout-minutes: 2880 # 48 hours container: gcr.io/gem5-test/${{ matrix.image }}:latest steps: @@ -29,18 +29,18 @@ jobs: # 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 }} + run: /usr/bin/env python3 /usr/bin/scons --ignore-style build/ALL/gem5${{ matrix.opts }} -j$(nproc) timeout-minutes: 600 # 10 hours # Tests the two latest gcc and clang supported compilers against all gem5 compilations. latest-compilers-all-gem5-builds: strategy: + fail-fast: false 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, VEGA_X86, GCN3_X86] image: [gcc-version-12, clang-version-14] opts: [.opt] - runs-on: [self-hosted, linux, x64, run] - continue-on-error: true + runs-on: [self-hosted, linux, x64, build] timeout-minutes: 2880 # 48 hours container: gcr.io/gem5-test/${{ matrix.image }}:latest steps: @@ -50,5 +50,5 @@ jobs: # 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 }} + run: /usr/bin/env python3 /usr/bin/scons --ignore-style build/${{ matrix.gem5-compilation }}/gem5${{ matrix.opts }} -j$(nproc) timeout-minutes: 600 # 10 hours diff --git a/.github/workflows/daily-tests.yaml b/.github/workflows/daily-tests.yaml index 4f9b0540e5..cf57d804bc 100644 --- a/.github/workflows/daily-tests.yaml +++ b/.github/workflows/daily-tests.yaml @@ -19,6 +19,7 @@ jobs: build-gem5: strategy: + fail-fast: false matrix: # NULL is in quotes since it is considered a keyword in yaml files image: [ALL, ALL_CHI, ARM, ALL_MSI, ALL_MESI_Two_Level, "NULL", NULL_MI_example, RISCV, VEGA_X86] @@ -36,7 +37,6 @@ jobs: - image: NULL_MI_example command-line: --default=NULL PROTOCOL=MI_example -j $(nproc) runs-on: [self-hosted, linux, x64, build] - continue-on-error: true needs: name-artifacts container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest steps: @@ -74,10 +74,10 @@ jobs: # start running all of the long tests testlib-long-tests: strategy: + fail-fast: false matrix: test-type: [arm_boot_tests, fs, gem5_library_example_tests, 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, run] - continue-on-error: true container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest needs: [name-artifacts, build-gem5] timeout-minutes: 1440 # 24 hours for entire matrix to run @@ -166,10 +166,10 @@ jobs: testlib-long-gem5_library_example_tests: runs-on: [self-hosted, linux, x64, run] strategy: + fail-fast: false 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: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest - continue-on-error: true needs: [name-artifacts, build-gem5] timeout-minutes: 1440 # 24 hours steps: diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml new file mode 100644 index 0000000000..cbacaad9aa --- /dev/null +++ b/.github/workflows/docker-build.yaml @@ -0,0 +1,42 @@ +# +name: Docker images build and push + +on: + push: + branches: + - develop + paths: + - 'util/docker/ubuntu-20.04_all-depenencies' + workflow_dispatch: + +env: + IMAGE_NAME: ubuntu-20.04_all-depenencies +# +jobs: + # This builds and pushes the docker image. + push: + runs-on: [self-hosted, linux, x64, run] + permissions: + packages: write + contents: read + + steps: + - uses: actions/checkout@v3 + + - name: Build image + run: | + cd util/docker/ubuntu-20.04_all-depenencies + docker build . --file Dockerfile --tag $IMAGE_NAME --label "runnumber=${GITHUB_RUN_ID}" + + - name: Log in to registry + run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin + + - name: Push image + run: | + IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME + + # This changes all uppercase characters to lowercase. + IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') + + docker tag $IMAGE_NAME $IMAGE_ID:latest + docker push $IMAGE_ID::latest diff --git a/.github/workflows/weekly-tests.yaml b/.github/workflows/weekly-tests.yaml index ba7038006c..782647cb81 100644 --- a/.github/workflows/weekly-tests.yaml +++ b/.github/workflows/weekly-tests.yaml @@ -36,10 +36,10 @@ jobs: # start running the very-long tests testlib-very-long-tests: strategy: + fail-fast: false matrix: test-type: [gem5_library_example_tests, gem5_resources, parsec_benchmarks, x86_boot_tests] runs-on: [self-hosted, linux, x64, run] - continue-on-error: true container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest needs: [build-gem5] timeout-minutes: 4320 # 3 days @@ -77,3 +77,34 @@ jobs: path: output.zip retention-days: 7 - run: echo "This job's status is ${{ job.status }}." + + dramsys-tests: + runs-on: [self-hosted, linux, x64, build] + container: gcr.io/gem5-test/ubuntu-22.04_all-dependencies:latest + 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 + + - name: Checkout DRAMSys + working-directory: ${{ github.workspace }}/ext/dramsys + run: | + git clone https://github.com/tukl-msd/DRAMSys DRAMSys + cd DRAMSys + git checkout -b gem5 09f6dcbb91351e6ee7cadfc7bc8b29d97625db8f + git submodule update --init --recursive + + # 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