-
Notifications
You must be signed in to change notification settings - Fork 7
144 lines (114 loc) Β· 3.5 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
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
139
140
141
142
143
144
name: CI
on:
push:
branches:
- main
tags:
- '[0-9]+.[0-9]+.[0-9]+'
pull_request:
env:
POETRY_VIRTUALENVS_CREATE: false
jobs:
quality:
name: Code quality
runs-on: ubuntu-latest
steps:
- name: Checkout git repository π
uses: actions/checkout@v4
- name: Set up python3.12 π
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Install poetry π¦
uses: Gr1N/setup-poetry@v9
with:
poetry-version: 2.0.1
- name: Load poetry cached libs β¬
uses: actions/cache@v4
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: ${{ runner.os }}-poetry
- name: Install dependencies π₯
run: poetry install --no-interaction
- name: Lint π
run: make lint
- name: Check types w/ mypy π
run: make types
test:
name: Run tests
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- name: Checkout git repository π
uses: actions/checkout@v4
- name: Set up python ${{ matrix.python-version }} π
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry π¦
uses: Gr1N/setup-poetry@v9
with:
poetry-version: 2.0.1
- name: Load poetry cached libs β¬
uses: actions/cache@v4
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys: ${{ runner.os }}-poetry
- name: Install dependencies π₯
run: |
poetry install --no-interaction
- name: Test code π
run: make test
- name: Send Coverage Report π
if: matrix.python-version == 3.12 && matrix.os == 'ubuntu-latest'
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_SERVICE_NAME: github
run: poetry run coveralls
docs:
name: Test Docs
runs-on: ubuntu-latest
steps:
- name: Checkout git repository π
uses: actions/checkout@v4
- name: Set up Python3.11 π
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install poetry π¦
uses: Gr1N/setup-poetry@v9
with:
poetry-version: 2.0.1
- name: Install dependencies π₯
run: poetry install --no-interaction --extras "docs"
- name: Build docs βοΈ
run: make docs
# TODO: /bin/sh: 1: sphinx-build: not found, e.g. https://github.com/capellaspace/console-client/actions/runs/3115544245/jobs/5052547042
continue-on-error: true
# deploy:
# name: Deploy to PyPI
# runs-on: ubuntu-latest
# # deploy will only be run when there is a tag available
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
# needs: [quality, test, docs] # only run after all other stages succeeded
# steps:
# - name: Checkout git repository π
# uses: actions/checkout@v4
# - name: Set up python3.8 π
# uses: actions/setup-python@v5
# with:
# python-version: 3.8
# - name: Install poetry π¦
# uses: Gr1N/setup-poetry@v7
# with:
# poetry-version: 1.6.1
# - name: Build βοΈ distributions
# run: |
# poetry build
# poetry publish -u __token__ -p ${{ secrets.PYPI_TOKEN }}