-
Notifications
You must be signed in to change notification settings - Fork 200
139 lines (114 loc) · 4.16 KB
/
ci.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
name: CI
on:
push:
branches:
- develop
- release
pull_request:
branches:
- develop
jobs:
build:
name: ${{ matrix.os }} x py${{ matrix.python }}
strategy:
fail-fast: false
matrix:
python: ["3.8", "3.9", "3.10", "3.11", "3.12"]
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
- name: "Windows Graphviz install"
if: runner.os == 'Windows'
uses: crazy-max/ghaction-chocolatey@v3
with:
args: -h
- name: Install Graphviz for Windows
if: runner.os == 'Windows'
run: |
choco install graphviz --version=2.49.3
- name: Install pygraphviz for Windows
if: runner.os == 'Windows'
run: |
python -m pip install --use-pep517 --config-settings="--global-option=build_ext" --config-settings="--global-option=-IC:\\Program Files\\Graphviz\\include" --config-settings="--global-option=-LC:\\Program Files\\Graphviz\\lib" pygraphviz
- name: Install Graphviz for other platforms
if: runner.os != 'Windows'
uses: ts-graphviz/setup-graphviz@v2
with:
macos-skip-brew-update: 'true'
- name: Cache venv
uses: actions/cache@v2
with:
path: ~/.cache/pypoetry/virtualenvs
key: ${{ runner.os }}-build-${{ matrix.python }}-${{ secrets.CACHE_VERSION }}-${{ hashFiles('poetry.lock') }}
- name: Install dependencies
run: |
pip install poetry
${{ matrix.install_graphviz }}
echo "Cache Version ${{ secrets.CACHE_VERSION }}"
poetry install
poetry run pip install ERAlchemy2
poetry config --list
- name: Print tool versions
run: |
poetry run pylint --version
poetry run pytest --version
poetry run black --version
poetry run pyright --version
- name: Check if the code is formatted
run: poetry run black --check dataprep
- name: Type check the project
run: poetry run pyright dataprep || true
- name: Build binary dependencies
run: poetry build
- name: Test the project
run: poetry run pytest --cov-report xml --cov=dataprep dataprep/tests
env:
DATAPREP_BROWSER_TESTS: 0
DATAPREP_CREDENTIAL_TESTS: 0
DATAPREP_DATA_CONNECTOR_YELP_TOKEN: ""
DATAPREP_DATA_CONNECTOR_YOUTUBE_TOKEN: ""
- name: Style check the project
run: poetry run pylint dataprep || true
- uses: codecov/codecov-action@v2
if: github.event.pull_request.head.repo.full_name == github.repository
with:
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}
# path_to_write_report: ./coverage.xml
- uses: codacy/codacy-coverage-reporter-action@v1
if: github.event.pull_request.head.repo.full_name == github.repository
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: coverage.xml
docs-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Graphviz
uses: ts-graphviz/setup-graphviz@v1.2.0
- name: Install dependencies
run: |
pip install poetry
curl -L https://github.com/jgm/pandoc/releases/download/2.11.2/pandoc-2.11.2-1-amd64.deb -o /tmp/pandoc.deb && sudo dpkg -i /tmp/pandoc.deb
- name: Cache venv
uses: actions/cache@v2
with:
path: ~/.cache/pypoetry/virtualenvs
key: ${{ runner.os }}-build-${{ matrix.python }}-${{ secrets.CACHE_VERSION }}-${{ hashFiles('poetry.lock') }}
- name: Install dependencies
run: |
pip install poetry
poetry install
poetry run pip install ERAlchemy2
- name: Build docs
run: poetry run sphinx-build -M html docs/source docs/build
- name: Archive docs
uses: actions/upload-artifact@v2
with:
name: docs
path: docs/build/html