-
Notifications
You must be signed in to change notification settings - Fork 3
135 lines (111 loc) · 3.36 KB
/
benchmarks.yaml
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: Benchmarks
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
benchmark_api:
name: Benchmarks
runs-on: ubuntu-22.04
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: fractal_test
FRACTAL_API_SUBMIT_RATE_LIMIT: 0
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install poetry
run: pipx install poetry==1.8.2
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "poetry"
- name: Install dependencies
run: poetry install --with dev --without docs --no-interaction -E gunicorn -E postgres
- name: Run Fractal with Gunicorn
run: |
export DB_ENGINE=postgres
export POSTGRES_DB=fractal_test
export POSTGRES_PASSWORD=postgres
export POSTGRES_USER=postgres
export POSTGRES_HOST=localhost
export FRACTAL_RUNNER_WORKING_BASE_DIR=/tmp/artifacts
export FRACTAL_TASKS_DIR=/tmp/FRACTAL_TASKS_DIR
export JWT_SECRET_KEY=secret
export JWT_EXPIRE_SECONDS=84600
export FRACTAL_API_SUBMIT_RATE_LIMIT=0
cd benchmarks/
poetry run fractalctl set-db
poetry run python populate_db/populate_db_script.py
poetry run sh serve.sh
- name: Benchmark
run: |
cd benchmarks/
poetry run python api_bench.py
- name: Print logs stderr
run: cat benchmarks/fractal-server.err
- name: Print logs stdout
run: cat benchmarks/fractal-server.out
- name: Add comment with preview
uses: mshick/add-pr-comment@v2
with:
message-path: |
benchmarks/bench_diff.md
# commit on benchmark-api removing bench_diff.html
- uses: stefanzweifel/git-auto-commit-action@v5
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
with:
commit_message: Update bench.html & bench.json
branch: benchmark-api
commit_options: '--no-verify'
push_options: '--force'
skip_checkout: true
file_pattern: 'benchmarks/bench.html benchmarks/bench.json'
benchmark_runner:
if: false
name: Benchmark Runner
runs-on: ubuntu-22.04
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: fractal_test
FRACTAL_API_SUBMIT_RATE_LIMIT: 0
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install poetry
run: pipx install poetry==1.8.2
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "poetry"
- name: Install dependencies
run: poetry install --with dev --without docs --no-interaction -E gunicorn -E postgres
- name: Benchmark
run: |
cd benchmarks/runner/
poetry run python benchmark_runner.py