Skip to content
Open
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/stress-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Nightly Stress Test for self-hosted runners
name: Self-hosted Runners Nightly Stress Test

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of "stress" maybe we should call this a scale test. We don't actually do anything with the runners which makes me lean a little away from calling it stress long term.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to scale.

on:
schedule:
# Triggers at 11pm every night.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nit, can you leave the timezone in the comment to make it obvious for anyone reviewing

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added the timezone comment. It's in UST so I changed the time to make it run at 11pm PST.

- cron: '0 23 * * *'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend adding a workflow_dispatch to this as well for testing and manual invocation

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

# Cancel any previous iterations if a new commit is pushed.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
nightly-stress-test:
name: "Stress Test ${{ matrix.runners }} - ${{ matrix.instances }}"
strategy:
fail-fast: false # don't cancel all jobs on failure
matrix:
instances: [1, 2, 3, 4, 5]
runners: ["arc-linux-x86-n2-64", "arc-linux-x86-n2-128", "arc-linux-arm64-t2a-48", "arc-linux-x86-g2-96-l4-8gpu", "arc-linux-x86-ct5lp-224-8tpu"]
# TODO: Needs final runs-on value
runs-on: ${{ matrix.runners }}
container:
image: ${{ (contains(matrix.runners, 't2a') && 'us-central1-docker.pkg.dev/tensorflow-sigs/tensorflow/build-arm64:jax-latest-multi-python') || 'index.docker.io/tensorflow/build@sha256:7fb38f0319bda36393cad7f40670aa22352b44421bb906f5cf34d543acd8e1d2' }}
timeout-minutes: 10

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know, does this timeout include the initialization of the runner?

Copy link
Author

@quoctruong quoctruong Aug 28, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it doesn't because it's supposed to be the execution time.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case its fine

defaults:
run:
shell: bash -ex {0}
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # ratchet:actions/checkout@v4
- name: Install JAX test requirements

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you see value in leaving the install of test requirements if we don't end up using them?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed it since it's not being used.

run: |
pip install -U -r build/test-requirements.txt
- name: DEBUG HALT
run: |
echo "Halting"
sleep 5m