CI - E2E tests #3474
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: CI - E2E tests | |
on: | |
workflow_dispatch: {} | |
schedule: | |
# keep different crons to reduce the n. of databases at the same time on astra | |
- cron: "0 0 * * *" | |
- cron: "0 1 * * *" | |
- cron: "0 2 * * *" | |
- cron: "0 3 * * *" | |
pull_request: | |
branches: | |
- main | |
concurrency: | |
group: ragstack-e2e-tests-${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}-${{ github.event.schedule }} | |
cancel-in-progress: true | |
jobs: | |
preconditions: | |
name: Preconditions | |
runs-on: ubuntu-latest | |
outputs: | |
notebooks: ${{ steps.filter.outputs.notebooks }} | |
e2e_tests: ${{ steps.filter.outputs.e2e_tests }} | |
astradb-dev-region: "us-west-2" | |
astradb-dev-cloud: "aws" | |
astradb-prod-region: "us-east-2" | |
astradb-prod-cloud: "aws" | |
is-scheduled: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} | |
# yamllint disable-line rule:line-length | |
is-ragstack-dev-cron: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'schedule' && github.event.schedule == '0 0 * * *') }} | |
# yamllint disable-line rule:line-length | |
is-ragstack-latest-release-cron: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'schedule' && github.event.schedule == '0 1 * * *') }} | |
# yamllint disable-line rule:line-length | |
is-langchain-dev-cron: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'schedule' && github.event.schedule == '0 2 * * *') }} | |
# yamllint disable-line rule:line-length | |
is-llamaindex-dev-cron: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'schedule' && github.event.schedule == '0 3 * * *') }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python 3.11 | |
uses: ./.github/actions/setup-python | |
- name: Run lint | |
uses: ./.github/actions/lint | |
- uses: dorny/paths-filter@v3 | |
id: filter | |
with: | |
filters: ./.github/changes-filter.yaml | |
ragstack-dev-dse-tests: | |
name: "RAGStack dev / DSE" | |
needs: ["preconditions"] | |
if: ${{ needs.preconditions.outputs.is-ragstack-dev-cron == 'true' || needs.preconditions.outputs.e2e_tests == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "RAGStack dev / DSE" | |
suite-name: "ragstack" | |
astradb: false | |
vector-database-type: "local-cassandra" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - RAGStack dev - DSE" | |
ragstack-dev-astradev-tests: | |
name: "RAGStack dev / AstraDB dev" | |
needs: ["preconditions"] | |
if: ${{ needs.preconditions.outputs.is-ragstack-dev-cron == 'true' || needs.preconditions.outputs.e2e_tests == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "RAGStack dev / AstraDB dev" | |
suite-name: "ragstack" | |
astradb: true | |
astradb-token-secret-name: "E2E_TESTS_ASTRA_DEV_DB_TOKEN" | |
astradb-env: "DEV" | |
astradb-region: "${{ needs.preconditions.outputs.astradb-dev-region }}" | |
astradb-cloud: "${{ needs.preconditions.outputs.astradb-dev-cloud }}" | |
vector-database-type: "astradb" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - RAGStack dev - AstraDB" | |
langchain-dse-tests: | |
name: "LangChain dev / DSE" | |
needs: ["preconditions"] | |
if: ${{ false }} | |
# disabled langchain & llamaindex dev tests 19-Jul-24 | |
# if: ${{ needs.preconditions.outputs.is-langchain-dev-cron == 'true' || needs.preconditions.outputs.e2e_tests == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "LangChain dev / DSE" | |
suite-name: "langchain" | |
astradb: false | |
vector-database-type: "local-cassandra" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - LangChain dev - DSE" | |
langchain-astradev-tests: | |
name: "LangChain dev / AstraDB dev" | |
needs: ["preconditions"] | |
if: ${{ false }} | |
# disabled langchain & llamaindex dev tests 19-Jul-24 | |
# if: ${{ needs.preconditions.outputs.is-langchain-dev-cron == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "LangChain dev / AstraDB dev" | |
suite-name: "langchain" | |
astradb: true | |
astradb-token-secret-name: "E2E_TESTS_ASTRA_DEV_DB_TOKEN" | |
astradb-env: "DEV" | |
astradb-region: "${{ needs.preconditions.outputs.astradb-dev-region }}" | |
astradb-cloud: "${{ needs.preconditions.outputs.astradb-dev-cloud }}" | |
vector-database-type: "astradb" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - LangChain dev - AstraDB" | |
llamaindex-dse-tests: | |
name: "LLamaIndex dev / DSE" | |
needs: ["preconditions"] | |
if: ${{ false }} | |
# disabled langchain & llamaindex dev tests 19-Jul-24 | |
# if: ${{ needs.preconditions.outputs.is-llamaindex-dev-cron == 'true' || needs.preconditions.outputs.e2e_tests == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "LLamaIndex dev / DSE" | |
suite-name: "llamaindex" | |
astradb: false | |
vector-database-type: "local-cassandra" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - LLamaIndex dev - DSE" | |
llamaindex-astradev-tests: | |
name: "LLamaIndex dev / AstraDB dev" | |
needs: ["preconditions"] | |
if: ${{ false }} | |
# disabled langchain & llamaindex dev tests 19-Jul-24 | |
# if: ${{ needs.preconditions.outputs.is-llamaindex-dev-cron == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "LLamaIndex dev / AstraDB dev" | |
suite-name: "llamaindex" | |
astradb: true | |
astradb-token-secret-name: "E2E_TESTS_ASTRA_DEV_DB_TOKEN" | |
astradb-env: "DEV" | |
astradb-region: "${{ needs.preconditions.outputs.astradb-dev-region }}" | |
astradb-cloud: "${{ needs.preconditions.outputs.astradb-dev-cloud }}" | |
vector-database-type: "astradb" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - LLamaIndex dev - AstraDB" | |
ragstack-latest-release-dse-tests: | |
name: "RAGStack latest / DSE" | |
needs: ["preconditions"] | |
if: ${{ needs.preconditions.outputs.is-ragstack-latest-release-cron == 'true' || needs.preconditions.outputs.e2e_tests == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "RAGStack latest / DSE" | |
suite-name: "ragstack-latest-release" | |
astradb: false | |
vector-database-type: "local-cassandra" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - RAGStack latest - DSE" | |
ragstack-latest-release-astradev-tests: | |
name: "RAGStack latest / AstraDB dev" | |
needs: ["preconditions"] | |
if: ${{ needs.preconditions.outputs.is-ragstack-latest-release-cron == 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "RAGStack latest / AstraDB dev" | |
suite-name: "ragstack-latest-release" | |
astradb: true | |
astradb-token-secret-name: "E2E_TESTS_ASTRA_DEV_DB_TOKEN" | |
astradb-env: "DEV" | |
astradb-region: "${{ needs.preconditions.outputs.astradb-dev-region }}" | |
astradb-cloud: "${{ needs.preconditions.outputs.astradb-dev-cloud }}" | |
vector-database-type: "astradb" | |
deploy-to-slack: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
deploy-to-testspace: ${{ needs.preconditions.outputs.is-scheduled == 'true' }} | |
testspace-space: "RAGStack test suite - RAGStack latest - AstraDB" | |
notebook-tests: | |
# we run notebook tests only on PROD env since we CassIO need different parameters for DEV, and we don't want to dirty the notebook | |
name: "Notebooks" | |
needs: ["preconditions"] | |
if: ${{ needs.preconditions.outputs.notebooks == 'true' && needs.preconditions.outputs.is-scheduled != 'true' }} | |
uses: ./.github/workflows/_run_e2e_tests.yml | |
secrets: inherit | |
with: | |
title: "Notebooks" | |
astradb: true | |
run-tests: false | |
run-notebooks: true | |
astradb-token-secret-name: "E2E_TESTS_ASTRA_PROD_DB_TOKEN" | |
astradb-env: "PROD" | |
astradb-region: "${{ needs.preconditions.outputs.astradb-prod-region }}" | |
astradb-cloud: "${{ needs.preconditions.outputs.astradb-prod-cloud }}" | |
deploy-to-slack: false | |
deploy-to-testspace: false |