-
Notifications
You must be signed in to change notification settings - Fork 1
170 lines (143 loc) · 4.97 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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
name: CI
on:
pull_request:
push:
tags:
- "*"
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
MAIN_PYTHON_VERSION: '3.11'
DOCUMENTATION_CNAME: 'examples.workbench.docs.pyansys.com'
VTK_OSMESA_VERSION: '9.2.20230527.dev0'
jobs:
labeler:
name: "Labels"
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
if: |
github.event.type != 'labeled'
steps:
- uses: actions/checkout@v4
- name: "Update labels"
uses: micnncim/action-label-syncer@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Label pull-request"
uses: actions/labeler@v5.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
code-style:
name: "Code style"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/code-style@v8
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
use-python-cache: false
doc-style:
name: "Documentation Style Check"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/doc-style@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
doc-build:
name: "Build documentation"
runs-on: [self-hosted, pyworkbench]
needs: [doc-style]
steps:
- name: "Checkout project"
uses: actions/checkout@v4
with:
path: pyworkbench-examples
- name: "Checkout examples data"
uses: actions/checkout@v4
with:
repository: ansys/example-data
path: data
- name: "Copy additional data into PyWorkbench"
run: |
Copy-Item -Path "data\pyworkbench\*" -Destination "pyworkbench-examples\examples" -Recurse -Force
Get-ChildItem -Path "pyworkbench-examples\examples" -Recurse
- name: "Install Python ${{ env.MAIN_PYTHON_VERSION }}"
uses: actions/setup-python@v5
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: "Install requirements"
working-directory: pyworkbench-examples
run: |
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -r requirements/requirements_examples.txt
python -m pip install -r requirements/requirements_doc.txt
- name: "Configure graphic dependencies"
working-directory: pyworkbench-examples
run: |
.venv\Scripts\Activate.ps1
python -m pip uninstall --yes vtk
python -m pip install --extra-index-url https://wheels.vtk.org vtk-osmesa==${{ env.VTK_OSMESA_VERSION }}
- name: "Build HTML documentation"
working-directory: pyworkbench-examples
run: |
.venv\Scripts\Activate.ps1
python -m sphinx doc/source "doc/_build/html" --color -vW -b html
env:
REMOTING_SERVER_ADDRESS: "localhost"
- name: "Upload HTML artifacts"
uses: actions/upload-artifact@v4
with:
name: documentation-html
path: pyworkbench-examples/doc/_build/html
- name: "Clean tasks"
if: ${{ always() }}
run: |
$processNames = @("ANSYS", "ANSYS241", "AnsysWBU", "AnsysFWW", "RunWB2")
$foundAnyProcess = $false
foreach ($processName in $processNames) {
$process = Get-Process -Name $processName -ErrorAction SilentlyContinue
if ($process) {
$process | Stop-Process -Force
$foundAnyProcess = $true
} else {
Write-Output "No process named '$processName' was found."
}
}
if (-not $foundAnyProcess) {
Write-Output "No specified processes were found."
}
- name: "Remove temporary folders"
if: ${{ always() }}
run: |
Get-ChildItem -Path "C:\Users\ansys\AppData\Local\Temp" -Directory -Filter "act_tmp*" | Remove-Item -Recurse -Force
Get-ChildItem -Path "C:\Users\ansys\AppData\Local\Temp" -Directory -Filter "WB_ansys*" | Remove-Item -Recurse -Force
doc-deploy-dev:
name: "Deploy development documentation"
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs: doc-build
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 }}
doc-deploy-stable:
name: "Deploy stable docs"
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs: doc-build
steps:
- name: Deploy the stable documentation
uses: ansys/actions/doc-deploy-stable@v8
with:
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.PYANSYS_CI_BOT_TOKEN }}
bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}