-
Notifications
You must be signed in to change notification settings - Fork 8
153 lines (139 loc) · 4.52 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
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
- name: set up python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: pip install --upgrade pip build
- run: pip install build
- 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]
- run: pip install --user . montepy[format]
- run: pip install --user . montepy[build]
- run: pip install --user . montepy[develop]
- run: pip freeze
- name: Upload build artifacts
uses: actions/[email protected]
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: Test Reporter
if: ${{ matrix.python-version == '3.9' && (success() || failure() )}}
uses: dorny/[email protected]
with:
name: CI-test-report
path: test_report.xml
reporter: java-junit
- 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.8
uses: actions/setup-python@v5
with:
python-version: 3.8
- run: pip install . montepy[doc,build]
- uses: mathieudutour/[email protected]
name: Get next version number
id: version_num
with:
dry_run: True
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Update changelog version
run: |
sed -i "s/#Next Version#/${{steps.version_num.outputs.new_version}}/w changes" doc/source/changelog.rst
[[ -s changes ]] || exit 1
- 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
format-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: set up python 3.8
uses: actions/setup-python@v5
with:
python-version: 3.8
- run: pip install . montepy[format]
- run: black --check montepy/ tests/
changelog-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check for changes
uses: dorny/paths-filter@v3
id: changes
with:
filters: |
change:
- 'doc/source/changelog.rst'
- if: steps.changes.outputs.change == 'false'
run: |
echo "Changelog not updated"
exit 1