Skip to content

Test matrix

Test matrix #1527

Workflow file for this run

name: Test matrix
on:
workflow_dispatch:
inputs:
weaviate_version:
description: "The weaviate docker image to version to run tests against"
type: string
required: true
test_to_run:
description: "The name of the chaos test to run. It takes the name of the test from the tests.yaml file as input. Example: 'filter-memory-leak'. If not passed, all tests will run."
required: false
default: ''
type: string
schedule:
- cron: '0 0 */2 * *'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || inputs.weaviate_version || github.ref }}
cancel-in-progress: true
jobs:
checkout:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
weaviate-version-information:
runs-on: ubuntu-latest
env:
weaviate_version: "${{inputs.weaviate_version || '1.27.2'}}"
outputs:
weaviate_version: ${{ steps.set-output.outputs.weaviate_version }}
steps:
- id: set-output
run: |
echo "Running chaos pipelines against Weaviate version: $weaviate_version" >> $GITHUB_STEP_SUMMARY
echo "weaviate_version=${{ env.weaviate_version }}" >> $GITHUB_OUTPUT
run-with-sync-indexing:
strategy:
fail-fast: false
matrix:
lsm_access_strategy: ["mmap", "pread"]
uses: ./.github/workflows/tests.yaml
with:
lsm_access_strategy: ${{matrix.lsm_access_strategy}}
weaviate_version: ${{ github.event_name == 'schedule' && 'latest' || inputs.weaviate_version || '1.27.2' }}
secrets:
AWS_ACCESS_KEY: ${{secrets.AWS_ACCESS_KEY}}
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}}
DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
GCP_SERVICE_ACCOUNT_BENCHMARKS: ${{secrets.GCP_SERVICE_ACCOUNT_BENCHMARKS}}
POLARSIGNALS_TOKEN: ${{secrets.POLARSIGNALS_TOKEN}}
send-slack-message-on-failure:
needs: [weaviate-version-information, run-with-sync-indexing]
if: failure() && github.event_name == 'schedule'
runs-on: ubuntu-latest
env:
SLACK_CHANNEL: 'C074U2W8FU3'
steps:
- name: Send Slack message
uses: slackapi/[email protected]
with:
# This data has been defined as a Workflow in the slack channel chaos-pipeline
payload: |
{
"message": "Chaos pipeline failed for Weaviate version: latest.\nLink: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
"slack_channel": "${{ env.SLACK_CHANNEL }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}