-
Notifications
You must be signed in to change notification settings - Fork 16
103 lines (92 loc) · 3.84 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
name: RAGStack CI
on:
workflow_dispatch: {}
schedule:
- cron: '0 0 * * *'
pull_request:
paths-ignore:
- '.github/workflows/langchain-master-daily.yml'
- '.github/workflows/release-ragstack.yml'
- '.github/workflows/security-scan.yml'
- 'docs/**'
- 'README.md'
branches:
- main
concurrency:
group: ragstack-ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: 'Setup: Python 3.11'
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install tox
- name: Run ragstack-ai unit tests
run: |
tox
- name: Run notebook tests
env:
ASTRA_DB_APPLICATION_TOKEN: "${{ secrets.E2E_TESTS_ASTRA_PROD_DB_TOKEN }}"
ASTRA_DB_API_ENDPOINT: "${{ secrets.E2E_TESTS_ASTRA_PROD_DB_ENDPOINT }}"
ASTRA_DB_ID: "${{ secrets.E2E_TESTS_ASTRA_PROD_DB_ID }}"
OPENAI_API_KEY: "${{ secrets.E2E_TESTS_OPEN_AI_KEY }}"
run: |
tox -e notebooks
- name: Run E2E tests
id: e2e-tests
env:
ASTRA_DEV_DB_TOKEN: "${{ secrets.E2E_TESTS_ASTRA_DEV_DB_TOKEN }}"
ASTRA_DEV_DB_ENDPOINT: "${{ secrets.E2E_TESTS_ASTRA_DEV_DB_ENDPOINT }}"
ASTRA_DEV_DB_ID: "${{ secrets.E2E_TESTS_ASTRA_DEV_DB_ID }}"
ASTRA_PROD_DB_TOKEN: "${{ secrets.E2E_TESTS_ASTRA_PROD_DB_TOKEN }}"
ASTRA_PROD_DB_ENDPOINT: "${{ secrets.E2E_TESTS_ASTRA_PROD_DB_ENDPOINT }}"
ASTRA_PROD_DB_ID: "${{ secrets.E2E_TESTS_ASTRA_PROD_DB_ID }}"
OPEN_AI_KEY: "${{ secrets.E2E_TESTS_OPEN_AI_KEY }}"
AZURE_OPEN_AI_KEY: "${{ secrets.E2E_TESTS_AZURE_OPEN_AI_KEY }}"
AZURE_OPEN_AI_ENDPOINT: "${{ secrets.E2E_TESTS_AZURE_OPEN_AI_ENDPOINT }}"
GCLOUD_ACCOUNT_KEY_JSON: "${{ secrets.E2E_TESTS_GCLOUD_ACCOUNT_KEY_JSON }}"
AWS_ACCESS_KEY_ID: "${{ secrets.E2E_TESTS_AWS_ACCESS_KEY_ID }}"
AWS_SECRET_ACCESS_KEY: "${{ secrets.E2E_TESTS_AWS_SECRET_ACCESS_KEY }}"
BEDROCK_AWS_REGION: "${{ secrets.E2E_TESTS_BEDROCK_AWS_REGION }}"
HUGGINGFACE_HUB_KEY: "${{ secrets.E2E_TESTS_HUGGINGFACE_HUB_KEY }}"
run: |
tox -c ragstack-e2e-tests
- name: Dump report on Github Summary
if: always()
run: |
if [ -f "ragstack-e2e-tests/all-tests-report.txt" ]; then
echo "$(cat ragstack-e2e-tests/all-tests-report.txt)" >> $GITHUB_STEP_SUMMARY
echo "Report added to the summary"
else
echo "Report not found"
fi
- name: Compute commit URL
if: always() && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
id: commit-ref
run: echo "commit-ref=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Prepare report for Slack
if: always() && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
uses: ./.github/actions/generate-slack-report
with:
from-report-file: ragstack-e2e-tests/failed-tests-report.txt
output-file: slack-report.json
type: "RAGStack Tests"
outcome: ${{ steps.e2e-tests.outcome }}
commit-url: "https://github.com/datastax/ragstack-ai/commits/${{ steps.commit-ref.outputs.commit-ref }}"
- name: Dump report on Slack
if: always() && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
uses: slackapi/[email protected]
with:
payload-file-path: "./slack-report.json"
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}