-
Notifications
You must be signed in to change notification settings - Fork 0
160 lines (142 loc) · 4.4 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
name: GitHub CI
on:
pull_request:
push:
tags:
- "*"
branches:
- main
workflow_dispatch:
env:
MAIN_PYTHON_VERSION: '3.10'
DOCUMENTATION_CNAME: 'apitools.scade.docs.pyansys.com'
LIBRARY_NAME: 'ansys-scade-apitools'
LIBRARY_NAMESPACE: 'ansys.scade.apitools'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
code-style:
name: "Code style"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/code-style@v6
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
doc-style:
name: "Documentation style"
runs-on: ubuntu-latest
steps:
- uses: ansys/actions/doc-style@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
smoke-tests:
name: "Build and Smoke tests"
runs-on: ${{ matrix.os }}
needs: [code-style]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.7']
steps:
- uses: ansys/actions/build-wheelhouse@v6
with:
library-name: ${{ env.LIBRARY_NAME }}
# library-namespace: ${{ env.LIBRARY_NAMESPACE }}
operating-system: ${{ matrix.os }}
python-version: ${{ matrix.python-version }}
tests:
name: "Tests"
# runs-on: ${{ matrix.os }}
runs-on: [self-hosted, 'SCADE']
needs: [smoke-tests]
strategy:
matrix:
os: [windows-latest]
scade-version: ['23.2']
fail-fast: false
steps:
- name: "Install Git and clone project"
uses: actions/checkout@v4
- uses: ansys/scade-actions/scade-tests-pytest@v1
with:
checkout: false
pytest-extra-args: "--cov=ansys --cov-report=term --cov-branch --cov-report=html:.cov/html --cov-report=xml:.cov/xml"
scade-version: ${{ matrix.scade-version }}
- name: "Upload coverage reports to Codecov"
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: ansys/scade-apitools
files: .cov/xml
doc-build:
name: "Build documentation"
runs-on: ubuntu-latest
timeout-minutes: 30
needs: [doc-style]
steps:
- uses: ansys/actions/doc-build@v6
with:
python-version: ${{ env.MAIN_PYTHON_VERSION }}
- name: "Zipping the examples directory"
run: |
sudo apt-get install zip
zip -r examples.zip ./examples
- name: "Upload zip to artifacts"
uses: actions/upload-artifact@v4
with:
name: examples
path: ./examples.zip
retention-days: 7
if-no-files-found: error
build-library:
name: "Build library basic example"
runs-on: ubuntu-latest
needs: [tests, doc-build]
steps:
- uses: ansys/actions/build-library@v6
with:
library-name: ${{ env.LIBRARY_NAME }}
python-version: ${{ env.MAIN_PYTHON_VERSION }}
release:
name: "Release project"
runs-on: ubuntu-latest
needs: [build-library]
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
steps:
- name: "Release to public PyPI"
uses: ansys/actions/release-pypi-public@v6
with:
library-name: ${{ env.LIBRARY_NAME }}
twine-username: "__token__"
twine-token: ${{ secrets.PYPI_TOKEN }}
- name: "Release to GitHub"
uses: ansys/actions/release-github@v6
with:
library-name: ${{ env.LIBRARY_NAME }}
additional-artifacts: 'examples'
doc-deploy-dev:
name: "Deploy development documentation"
# Deploy development only when merging or pushing to the 'main' branch
runs-on: ubuntu-latest
needs: [build-library]
if: github.event_name == 'push' && !contains(github.ref, 'refs/tags')
steps:
- uses: ansys/actions/doc-deploy-dev@v6
with:
doc-artifact-name: 'documentation-html'
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}
doc-deploy-stable:
name: "Deploy stable documentation"
# Deploy release documentation when creating a new tag
runs-on: ubuntu-latest
needs: [release]
if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
steps:
- uses: ansys/actions/doc-deploy-stable@v6
with:
doc-artifact-name: 'documentation-html'
cname: ${{ env.DOCUMENTATION_CNAME }}
token: ${{ secrets.GITHUB_TOKEN }}