-
Notifications
You must be signed in to change notification settings - Fork 0
114 lines (104 loc) · 4.3 KB
/
bot-tests.yml
File metadata and controls
114 lines (104 loc) · 4.3 KB
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
104
105
106
107
108
109
110
111
112
113
114
name: Bot Tests
on:
workflow_dispatch:
inputs:
environment:
description: Test environment
required: true
default: staging
type: choice
options:
- staging
- production
run_real_gemini:
description: Run live Gemini tests
required: true
default: false
type: boolean
run_full_stack:
description: Run Render full-stack test
required: true
default: false
type: boolean
run_r2_real:
description: Run R2 real integration tests
required: true
default: false
type: boolean
run_cloudflare:
description: Run Cloudflare tests
required: true
default: false
type: boolean
jobs:
test:
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.environment }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install
run: npm ci
- name: Run test matrix
shell: bash
env:
BOT_SECRETS_ENV_ONLY: "true"
BOT_ENV: ${{ github.event.inputs.environment }}
RENDER_DEPLOY_METADATA_OUT: telegram/out/deploy-render-metadata.${{ github.event.inputs.environment }}.json
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
TELEGRAM_WEBHOOK_SECRET: ${{ secrets.TELEGRAM_WEBHOOK_SECRET }}
TELEGRAM_NOTIFY_CHAT_ID: ${{ secrets.TELEGRAM_NOTIFY_CHAT_ID }}
TELEGRAM_ADMIN_CHAT_IDS: ${{ secrets.TELEGRAM_ADMIN_CHAT_IDS }}
COMICBOT_ALLOWED_CHAT_IDS: ${{ secrets.COMICBOT_ALLOWED_CHAT_IDS }}
TELEGRAM_TEST_CHAT_ID: ${{ secrets.TELEGRAM_TEST_CHAT_ID }}
RENDER_PUBLIC_BASE_URL: ${{ secrets.RENDER_PUBLIC_BASE_URL }}
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
HUGGINGFACE_INFERENCE_API_TOKEN: ${{ secrets.HUGGINGFACE_INFERENCE_API_TOKEN }}
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }}
FIRECRAWL_API_KEY: ${{ secrets.FIRECRAWL_API_KEY }}
JINA_API_KEY: ${{ secrets.JINA_API_KEY }}
DRIFTBOT_API_KEY: ${{ secrets.DRIFTBOT_API_KEY }}
BRAVE_SEARCH_API_KEY: ${{ secrets.BRAVE_SEARCH_API_KEY }}
TAVILY_API_KEY: ${{ secrets.TAVILY_API_KEY }}
EXA_API_KEY: ${{ secrets.EXA_API_KEY }}
SERPER_API_KEY: ${{ secrets.SERPER_API_KEY }}
SERPAPI_API_KEY: ${{ secrets.SERPAPI_API_KEY }}
GOOGLE_KG_API_KEY: ${{ secrets.GOOGLE_KG_API_KEY }}
LLAMA_CLOUD_API_KEY: ${{ secrets.LLAMA_CLOUD_API_KEY }}
UNSTRUCTURED_API_KEY: ${{ secrets.UNSTRUCTURED_API_KEY }}
ASSEMBLYAI_API_KEY: ${{ secrets.ASSEMBLYAI_API_KEY }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_WORKERS_AI_TOKEN: ${{ secrets.CLOUDFLARE_WORKERS_AI_TOKEN }}
CLOUDFLARE_ACCOUNT_API_TOKEN: ${{ secrets.CLOUDFLARE_ACCOUNT_API_TOKEN }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_WORKERS_AI_TOKEN }}
CLOUDFLARE_WORKER_URL: ${{ secrets.CLOUDFLARE_WORKER_URL }}
R2_S3_ENDPOINT: ${{ secrets.R2_S3_ENDPOINT }}
R2_BUCKET: ${{ secrets.R2_BUCKET }}
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
run: |
set -euo pipefail
npm run secrets:validate:tests:ci
npm run test:render:local
npm run test:render
if [[ "${{ github.event.inputs.run_real_gemini }}" == "true" ]]; then
RUN_RENDER_REAL_GEMINI=1 npm run test:render:gemini-real
fi
if [[ "${{ github.event.inputs.run_r2_real }}" == "true" ]]; then
RUN_R2_E2E=true npm run test:render:r2-real
fi
if [[ "${{ github.event.inputs.run_full_stack }}" == "true" ]]; then
RUN_FULL_STACK_E2E=true npm run test:render:full-stack
fi
if [[ "${{ github.event.inputs.run_cloudflare }}" == "true" ]]; then
npm run test:cloudflare
npm run test:cloudflare:smoke
fi