-
Notifications
You must be signed in to change notification settings - Fork 86
134 lines (120 loc) · 3.62 KB
/
tests.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
name: continuous-integration
on:
push:
branches: [master]
tags:
- 'v*'
pull_request:
schedule:
# run every Monday at 5am UTC
- cron: '0 5 * * 1'
workflow_dispatch:
jobs:
tests:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
sphinx: [""] # Newest Sphinx (any)
myst-parser: [""] # Newest MyST Parser (any)
include:
# Just check the other platforms once
- os: windows-latest
python-version: "3.12"
sphinx: "~=8.0"
myst-parser: "~=4.0"
pillow: "==11.0.0"
- os: macos-latest
python-version: "3.12"
sphinx: "~=8.0"
myst-parser: "~=4.0"
pillow: "==11.0.0"
- os: ubuntu-latest
python-version: "3.12"
sphinx: "~=8.0"
myst-parser: "~=4.0"
pillow: "==11.0.0"
# Oldest known-compatible dependencies
- os: ubuntu-latest
python-version: "3.9"
sphinx: "==5.0.0"
myst-parser: "==1.0.0"
pillow: "==11.0.0"
# Mid-range dependencies
- os: ubuntu-latest
python-version: "3.11"
sphinx: "==7.0.0"
myst-parser: "==3.0.0"
pillow: "==11.0.0"
# Newest known-compatible dependencies
- os: ubuntu-latest
python-version: "3.12"
sphinx: "==8.0.2"
myst-parser: "==4.0.0"
pillow: "==11.0.0"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache: pip
- name: Install myst-nb with Sphinx ${{ matrix.sphinx }}
shell: bash
run: |
pip install --upgrade "Sphinx${{ matrix.sphinx }}" "myst-parser${{ matrix.myst-parser }}" "pillow${{ matrix.pillow }}" -e .[testing]
pip freeze
- name: Run pytest
run: pytest --durations=10
coverage:
needs: [tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: pip
- name: Install dependencies
run: |
pip install -e .[testing]
pip freeze
- name: Run pytest
run: pytest --durations=10 --cov=myst_nb --cov-report=xml --cov-report=term-missing
- name: Create cov
run: coverage xml
# for some reason the tests/conftest.py::check_nbs fixture breaks pytest-cov's cov-report outputting
# this is why we run `coverage xml` afterwards (required by codecov)
# TEMPORARY FIX: Disable codecov until we can get it working again
- name: Upload to Codecov
uses: codecov/codecov-action@v4
if: false
with:
name: myst-nb-pytests
flags: pytests
files: ./coverage.xml
publish:
name: Publish to PyPi
needs: [tests]
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: install flit
run: |
pip install flit~=3.4
- name: Build and publish
run: |
flit publish
env:
FLIT_USERNAME: __token__
FLIT_PASSWORD: ${{ secrets.PYPI_KEY }}