generated from ansys/template
-
Notifications
You must be signed in to change notification settings - Fork 1
155 lines (139 loc) · 4.38 KB
/
ci_cd.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
name: GitHub CI
on:
pull_request:
workflow_dispatch:
push:
tags:
- "*"
branches:
- main
env:
MAIN_PYTHON_VERSION: '3.10'
PACKAGE_NAME: 'ansys-optislang-core'
PACKAGE_NAMESPACE: 'ansys.optislang.core'
DOCUMENTATION_CNAME: 'optislang.docs.pyansys.com'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
style:
name: "Code style"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/code-style@v8
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
doc-style:
name: "Doc style check"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/doc-style@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
vale-version: "3.4.1"
wheelhouse:
name: "Wheelhouse and smoke tests"
runs-on: ${{ matrix.os }}
needs: [style]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- uses: ansys/actions/build-wheelhouse@v8
with:
library-name: ${{ env.PACKAGE_NAME }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
tests:
name: "Test ${{ matrix.os }} using Python ${{ matrix.python-version }}"
needs: [wheelhouse]
runs-on: ${{ matrix.os }}
env:
PYTEST_EXTRA_ARGS: "--cov=ansys.optislang.core --cov-report=term --cov-report=xml:.cov/coverage.xml --cov-report=html:.cov/html"
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
fail-fast: false
steps:
- name: "Run pytest with desired markers and extra arguments"
uses: ansys/actions/tests-pytest@v8
with:
python-version: ${{ matrix.python-version }}
pytest-extra-args: ${{ env.PYTEST_EXTRA_ARGS }}
- name: "Upload coverage results as artifacts"
uses: actions/upload-artifact@v4
if: |
(matrix.python-version == env.MAIN_PYTHON_VERSION) &&
(runner.os == 'Linux')
with:
name: HTML-Coverage
path: .cov/html
retention-days: 7
# - name: Upload coverage to Codecov
# uses: codecov/codecov-action@v3
# if: |
# (matrix.cfg.python-version == env.MAIN_PYTHON_VERSION) &&
# (runner.os == 'Linux')
# with:
# files: .cov/coverage.xml
doc:
name: "Documentation"
runs-on: ubuntu-latest
needs: doc-style
steps:
- uses: ansys/actions/doc-build@v8
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
dependencies: "pandoc"
build-library:
name: "Build library"
needs: [doc, tests]
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/build-library@v8
with:
library-name: ${{ env.PACKAGE_NAME }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
release:
name: "Release project"
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
needs: build-library
runs-on: ubuntu-latest
steps:
- name: "Release to the public PyPI repository"
uses: ansys/actions/release-pypi-public@v8
with:
library-name: ${{ env.PACKAGE_NAME }}
twine-username: "__token__"
twine-token: ${{ secrets.PYPI_TOKEN }}
- name: "Release to GitHub"
uses: ansys/actions/release-github@v8
with:
library-name: ${{ env.PACKAGE_NAME }}
upload_dev_docs:
name: "Upload development documentation"
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs: build-library
steps:
- uses: ansys/actions/doc-deploy-dev@v8
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}
upload_docs_release:
name: "Upload release documentation"
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs: release
steps:
- uses: ansys/actions/doc-deploy-stable@v8
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}