[gem5-dev] [M] Change in gem5/gem5[stable]: misc: Add weekly tests to Github workflows

2023-06-08 Thread Melissa Jost (Gerrit) via gem5-dev
Melissa Jost has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/71401?usp=email )



Change subject: misc: Add weekly tests to Github workflows
..

misc: Add weekly tests to Github workflows

This introduces the very-long tests from our weekly tests to be
able to run within GitHub.

Change-Id: I5f5b4c521b47272cb27640c572a869c26c04b95a
---
A .github/workflows/weekly-tests.yaml
1 file changed, 178 insertions(+), 0 deletions(-)



diff --git a/.github/workflows/weekly-tests.yaml  
b/.github/workflows/weekly-tests.yaml

new file mode 100644
index 000..48fb79f
--- /dev/null
+++ b/.github/workflows/weekly-tests.yaml
@@ -0,0 +1,178 @@
+# This workflow runs all of the very-long tests within main.py
+
+name: Running weekly main.py
+run-name: ${{ github.actor }} is running the 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: 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: 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: 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: 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: 1440 # 24 hours
+steps:
+- uses: actions/ch

[gem5-dev] [M] Change in gem5/gem5[stable]: misc: Add weekly tests to Github workflows

2023-06-08 Thread Melissa Jost (Gerrit) via gem5-dev
Melissa Jost has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/71401?usp=email )


Change subject: misc: Add weekly tests to Github workflows
..

misc: Add weekly tests to Github workflows

This introduces the very-long tests from our weekly tests to be
able to run within GitHub.

Change-Id: I5f5b4c521b47272cb27640c572a869c26c04b95a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/71401
Reviewed-by: Bobby Bruce 
Maintainer: Bobby Bruce 
Tested-by: kokoro 
---
A .github/workflows/weekly-tests.yaml
1 file changed, 178 insertions(+), 0 deletions(-)

Approvals:
  Bobby Bruce: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass




diff --git a/.github/workflows/weekly-tests.yaml  
b/.github/workflows/weekly-tests.yaml

new file mode 100644
index 000..48fb79f
--- /dev/null
+++ b/.github/workflows/weekly-tests.yaml
@@ -0,0 +1,178 @@
+# This workflow runs all of the very-long tests within main.py
+
+name: Running weekly main.py
+run-name: ${{ github.actor }} is running the 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: 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: 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: 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: 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