-
Notifications
You must be signed in to change notification settings - Fork 4
138 lines (133 loc) · 3.79 KB
/
Copy pathtest.yaml
File metadata and controls
138 lines (133 loc) · 3.79 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: Python Tests
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
unit:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest] # For demonstration, other OSes are commented out: macos-latest, windows-latest
python-version: ['3.13', '3.12', '3.11', '3.10']
steps:
- uses: actions/checkout@v7
with: # no need for the history
fetch-depth: 1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
run: |
python -m pip install --upgrade pip
python -m pip install poetry==2.3.2
- name: Install dependencies with Poetry
run: |
poetry lock
poetry install --with dev
shell: bash
- name: Run unit tests
id: run-tests
run: >
poetry run pytest \
-m "not requires_openrouter" \
--junitxml=pytest.xml \
--cov-report=term-missing:skip-covered \
--cov-report=xml:coverage.xml \
--cov=src src/tests \
--log-level=DEBUG \
--verbose
shell: bash
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
check-secrets:
runs-on: ubuntu-latest
outputs:
has-openrouter-key: ${{ steps.check.outputs.has-key }}
steps:
- id: check
env:
KEY: ${{ secrets.OPENROUTER_API_KEY }}
run: |
if [ -n "$KEY" ]; then
echo "has-key=true" >> $GITHUB_OUTPUT
echo "OPENROUTER_API_KEY is set — integration tests will run."
else
echo "has-key=false" >> $GITHUB_OUTPUT
echo "OPENROUTER_API_KEY is not set — skipping integration tests."
fi
shell: bash
integration:
needs: check-secrets
if: needs.check-secrets.outputs.has-openrouter-key == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 1
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install poetry
run: |
python -m pip install --upgrade pip
python -m pip install poetry==2.3.2
- name: Install dependencies with Poetry
run: |
poetry lock
poetry install --with dev
shell: bash
- name: Run OpenRouter integration tests
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
run: >
poetry run pytest \
-m "requires_openrouter" \
--junitxml=pytest.xml \
--cov-report=term-missing:skip-covered \
--cov-report=xml:coverage.xml \
--cov=src src/tests \
--log-level=DEBUG \
--verbose
shell: bash
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
pre-commit:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: ['3.10']
steps:
- uses: actions/checkout@v7
with: # no need for the history
fetch-depth: 1
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Poetry
run: pip install poetry==2.1.3
shell: bash
- name: Install dependencies with Poetry
run: |
poetry env use ${{ matrix.python-version }}
poetry lock
poetry install --with dev
poetry env info
shell: bash
- name: Install pre-commit
run: pip install pre-commit
shell: bash
- name: Run pre-commit
run: |
poetry run pre-commit run --all-files --show-diff-on-failure
shell: bash