-
Notifications
You must be signed in to change notification settings - Fork 2
136 lines (123 loc) · 3.78 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
name: GitHub CI
on:
pull_request:
push:
tags:
- "*"
branches:
- develop
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
style:
name: Code style
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade -r requirements/requirements_tox.txt
- name: Test with tox
run: tox -e style
tests:
name: Tests and coverage
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, ubuntu-latest]
python-version: ['3.7', '3.8', '3.9', '3.10']
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade -r requirements/requirements_tox.txt
python -m pip install --upgrade tox-gh-actions
- name: Test with tox
# Only the tox environment specified in the tox.ini gh-actions is run
run: tox -e test -- --ignore=tests/e2e
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade -r requirements/requirements_tox.txt
- name: Generate the documentation with tox
run: tox -e doc
- name: Zip documentation
run: |
cd .tox/doc_out
zip -r pyedb_documentation.zip *
- name: Upload HTML Documentation
uses: actions/upload-artifact@v2
with:
name: HTML-Documentation
path: .tox/doc_out/pyedb_documentation.zip
retention-days: 7
- name: Get Bot Application Token
if: github.event_name == 'push' && github.ref == 'refs/heads/develop'
id: get_workflow_token
uses: peter-murray/workflow-application-token-action@v1
with:
application_id: ${{ secrets.BOT_APPLICATION_ID }}
application_private_key: ${{ secrets.BOT_APPLICATION_PRIVATE_KEY }}
- name: Deploy
if: github.event_name == 'push' && github.ref == 'refs/heads/develop'
uses: JamesIves/[email protected]
with:
repository-name: pyansys/pyedb-dev-docs
token: ${{ steps.get_workflow_token.outputs.token }}
branch: gh-pages
folder: .tox/doc_out
clean: true
build:
name: Build library
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip flit
python -m pip install -r protos/requirements/requirements_build.txt
python -m pip install -r requirements/requirements_build.txt
- name: Build API
run: |
cd protos
python setup.py develop
python setup.py bdist_wheel
cp -a dist/. ../dist/
- name: Build Core
run: |
flit build
- name: Validate libraries
run: |
python -m twine check dist/*
- name: Zip libraries
run: |
cd dist
zip -r pyedb.zip *
- name: Upload libraries
uses: actions/upload-artifact@v2
with:
name: pyedb
path: dist/pyedb.zip
retention-days: 14