-
Notifications
You must be signed in to change notification settings - Fork 6
142 lines (139 loc) · 5.13 KB
/
pre-commit.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
name: pre-commit
on:
pull_request:
push:
branches: [main]
jobs:
pre-commit:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ]
name: Pre-commit python ${{ matrix.python-version }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
architecture: x64
- name: 'Install requirements (standard)'
if: ${{ matrix.python-version != '3.6' }}
run: |
pip install --upgrade pip wheel
pip install -r requirements.txt
- name: 'Install requirements (custom Python ${{ matrix.python-version }})'
if: ${{ matrix.python-version == '3.6' }}
run: |
pip install wheel
pip install -r requirements.txt -r requirements-additional-${{ matrix.python-version }}.txt
- name: 'Freeze Python ${{ matrix.python-version }} constraints'
run: |
pip freeze > constraints-${{ matrix.python-version }}.txt
- run: pip install -r dev-requirements.txt -r mypy-requirements.txt
- name: MyPy cache
uses: actions/cache@v3
with:
path: .mypy_cache/${{ matrix.python-version }}
key: mypy-${{ matrix.python-version }}
- name: 'pre-commit'
uses: pre-commit/action@v3.0.0
# if: ${{ matrix.python-version != '3.6' }}
with:
extra_args: --all -c .pre-commit-config.yaml
# - name: 'pre-commit (custom Python ${{ matrix.python-version }})'
# uses: pre-commit/action@v3.0.0
# if: ${{ matrix.python-version == '3.6' }}
# with:
# extra_args: --all -c .pre-commit-config-gh-${{ matrix.python-version }}.yaml
- name: Check transitive dependencies licences
id: license_check_report
# uses: pilosus/action-pip-license-checker@v1.0.0
# continue-on-error: true
uses: pilosus/action-pip-license-checker@d574bc40bf5b18db8920ad4fff1ee376abb6db28
with:
requirements: constraints-${{ matrix.python-version }}.txt
fail: 'StrongCopyleft'
exclude: 'pylint.*'
- name: Print licences report
if: ${{ always() }}
run: echo "${{ steps.license_check_report.outputs.report }}"
- uses: actions/upload-artifact@v3
with:
retention-days: 2
path: constraints-${{ matrix.python-version }}.txt
update_docs:
runs-on: ubuntu-latest
name: Update documentation if all worked properly
needs:
- pre-commit
steps:
- uses: actions/checkout@v3
- name: Changes at WfExS-backend internal JSON Schemas
id: changed_schemas
uses: tj-actions/changed-files@v34
with:
files: |
wfexs_backend/schemas/*.json
- name: Install documentation generator
if: steps.changed_schemas.outputs.any_changed == 'true'
uses: actions/setup-python@v4
with:
python-version: "3.8"
cache: 'pip'
architecture: x64
cache-dependency-path: 'dev-requirements.txt'
- name: Install development dependencies
run: |
pip install -r dev-requirements.txt
- name: Generate HTML documentation from internal JSON Schemas
id: doc-generate-html-if-changed
if: steps.changed_schemas.outputs.any_changed == 'true'
run: |
dev-scripts/regenerate_schema_docs_html.bash
- uses: actions/upload-artifact@v3
if: steps.doc-generate-html-if-changed.outcome == 'success'
with:
retention-days: 2
path: |
docs/schemas/*.html
docs/schemas/*.css
docs/schemas/*.js
- name: Generate MD documentation from internal JSON Schemas
id: doc-generate-md-if-changed
if: steps.changed_schemas.outputs.any_changed == 'true'
run: |
dev-scripts/regenerate_schema_docs_md.bash
- uses: actions/upload-artifact@v3
if: steps.doc-generate-md-if-changed.outcome == 'success'
with:
retention-days: 2
path: |
docs/schemas/*.md
pull_request_changes:
runs-on: ubuntu-latest
name: Pull request with the newly generated contents
needs:
- pre-commit
- update_docs
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
path: changes-dir
- name: Move artifacts to their right place
run: |
cp -dpr changes-dir/artifact/* .
rm -r changes-dir/artifact
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v4
with:
title: Updated constraints (triggered by ${{ github.sha }})
delete-branch: true
commit-message: "[create-pull-request] Automatically commit updated contents (constraints, generated documentation)"
- name: Check outputs
if: ${{ steps.cpr.outputs.pull-request-number }}
run: |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"