Run (intensive) tests nightly #167
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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_* |