Skip to content

Run (intensive) tests nightly #167

Run (intensive) tests nightly

Run (intensive) tests nightly #167

Workflow file for this run

name: Run (intensive) tests nightly
on:
workflow_dispatch:
schedule:
# 2:15 AM PDT, offseted by a few minutes because:
# "The schedule event can be delayed during periods of high loads of GitHub Actions workflow runs. High load times include the start of every hour. If the load is sufficiently high enough, some queued jobs may be dropped."
- cron: '15 9 * * *'
jobs:
test-cluster:
strategy:
fail-fast: false
matrix:
test-globs: ["chromadb/test/property/test_collections.py",
"chromadb/test/property/test_add.py",
"chromadb/test/property/test_filtering.py",
"chromadb/test/property/test_embeddings.py"]
runs-on: "depot-ubuntu-22.04-8"
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/python
with:
python-version: "3.12"
- uses: ./.github/actions/tilt
- name: Test
run: bin/cluster-test.sh bash -c 'python -m pytest "${{ matrix.test-globs }}"'
shell: bash
env:
PROPERTY_TESTING_PRESET: slow
- name: Get logs of all services
id: get-logs
if: success() || failure()
run: |
bin/get-logs.sh "${{ matrix.test-globs }}" "3.12"
# Output the logs zip file path as a job output
echo "artifact_name=cluster_logs_$(basename "${{ matrix.test-globs }}" .py)_3.12" >> $GITHUB_OUTPUT
echo "logs_zip_path=$(pwd)/$(basename "${{ matrix.test-globs }}" .py)_3.12_logs.zip" >> $GITHUB_OUTPUT
shell: bash
- name: Upload logs as artifact
if: success() || failure()
uses: actions/upload-artifact@v4
with:
name: ${{ steps.get-logs.outputs.artifact_name }}
path: ${{ steps.get-logs.outputs.logs_zip_path }}
- name: Send PagerDuty alert on failure
if: ${{ failure() }}
uses: Entle/[email protected]
with:
pagerduty-integration-key: '${{ secrets.PAGERDUTY_INTEGRATION_KEY }}'
pagerduty-dedup-key: distributed-test-failed-${{ matrix.test-globs}}
merge-cluster-logs:
runs-on: ubuntu-latest
needs: test-cluster
steps:
- name: Merge
uses: actions/upload-artifact/merge@v4
with:
name: cluster_test_logs
pattern: cluster_logs_*