-
Notifications
You must be signed in to change notification settings - Fork 7
156 lines (143 loc) · 4.55 KB
/
main.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
145
146
147
148
149
150
151
152
153
154
155
156
name: CI testing
on:
pull_request:
push:
branches: [develop, main, alpha-test]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: set up python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: pip install --upgrade pip
- run: pip install .[build]
- name: Get Version
id: get_version
run: python -m setuptools_scm
- run: python -m build --sdist --wheel
- run: pip install .
- run: pip uninstall -y montepy
- run: pip install --user dist/*.whl
# run scripts
- run: change_to_ascii -h
- run: pip uninstall -y montepy
- run: pip install --user dist/*.tar.gz
- run: pip install --user . montepy[test]
- run: pip install --user . montepy[doc]
if: ${{ matrix.python-version != '3.8'}}
- run: pip install --user . montepy[format]
- run: pip install --user . montepy[build]
- run: pip install --user . montepy[develop]
if: ${{ matrix.python-version != '3.8'}}
- run: pip freeze
- name: Upload build artifacts
uses: actions/upload-artifact@v4.3.1
if: ${{ matrix.python-version == '3.9' }}
with:
name: build
path: dist/*
test:
runs-on: ubuntu-latest
permissions: write-all
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: set up python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: pip install --user . montepy[test]
- run: pip install --user . montepy[build]
- run: coverage run -m pytest --junitxml=test_report.xml
- run: coverage report
if: ${{ success() || failure() }}
- run: coverage xml
if: ${{ success() || failure() }}
- name: Upload test report
if: ${{ matrix.python-version == '3.9' && (success() || failure() )}}
uses: actions/upload-artifact@v4
with:
name: test
path: test_report.xml
- name: Upload coverage report
if: ${{ matrix.python-version == '3.9' && (success() || failure() )}}
uses: actions/upload-artifact@v4
with:
name: coverage
path: coverage.xml
- name: Coveralls GitHub Action
if: ${{ matrix.python-version == '3.9' && (success() || failure() )}}
uses: coverallsapp/github-action@v2
with:
file: coverage.xml
doc-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: set up python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- run: pip install . montepy[doc,build]
- uses: mathieudutour/github-tag-action@v6.2
name: Get next version number
id: version_num
with:
dry_run: True
github_token: ${{ secrets.GITHUB_TOKEN }}
- run: sphinx-build doc/source/ doc/build/ -W --keep-going -E
name: Build site strictly
- uses: actions/upload-artifact@v4
with:
name: website
path: doc/build
- name: Test for missing API documentation
run: |
cd doc/source
python _test_for_missing_docs.py
- name: Test for broken hyperlinks
run: |
cd doc
make linkcheck
format-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: set up python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- run: pip install . montepy[format]
- run: black --check montepy/ tests/
changelog-test:
runs-on: ubuntu-latest
if: github.ref != 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Check for changes
uses: dorny/paths-filter@v3
id: changes
with:
filters: |
changelog:
- 'doc/source/changelog.rst'
code:
- 'montepy/**'
- if: (steps.changes.outputs.changelog == 'false') && steps.changes.outputs.code == 'true'
run: |
echo "Changelog not updated"
exit 1