11name : Checks
22
3- on : workflow_call
3+ on :
4+ workflow_call :
45
56jobs :
67
7- version-check-job :
8- name : Version Check
9- runs-on : ubuntu-latest
8+ Version-Check :
9+ name : Version
10+ runs-on : ubuntu-24.04
1011
1112 steps :
1213 - name : SCM Checkout
@@ -15,82 +16,142 @@ jobs:
1516 fetch-depth : 0
1617
1718 - name : Setup Python & Poetry Environment
18- uses :
exasol/python-toolbox/.github/actions/[email protected] 19- with :
20- poetry-version : 2.0.1
19+ uses :
exasol/python-toolbox/.github/actions/[email protected] 2120
2221 - name : Check Version(s)
23- run : poetry run version-check version.py
22+ run : poetry run -- version-check version.py
2423
25- build-documentation-job :
26- name : Build Documentation
27- needs : [version-check-job ]
28- runs-on : ubuntu-latest
24+ Documentation :
25+ name : Docs
26+ needs : [ Version-Check ]
27+ runs-on : ubuntu-24.04
2928
3029 steps :
3130 - name : SCM Checkout
3231 uses : actions/checkout@v4
3332
3433 - name : Setup Python & Poetry Environment
35- uses :
exasol/python-toolbox/.github/actions/[email protected] 36- with :
37- poetry-version : 2.0.1
34+ uses :
exasol/python-toolbox/.github/actions/[email protected] 3835
3936 - name : Build Documentation
4037 run : |
41- poetry run python -m nox -s docs:build
38+ poetry run -- nox -s docs:build
39+
40+ build-matrix :
41+ name : Generate Build Matrix
42+ uses : ./.github/workflows/matrix-python.yml
43+
44+ Changelog :
45+ name : Changelog Update Check
46+ runs-on : ubuntu-24.04
47+ if : ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }}
48+
49+ steps :
50+ - name : SCM Checkout
51+ uses : actions/checkout@v4
52+
53+ - name : Setup Python & Poetry Environment
54+ uses :
exasol/python-toolbox/.github/actions/[email protected] 55+
56+ - name : Run changelog update check
57+ run : poetry run -- nox -s changelog:updated
4258
43- lint-job :
59+ Lint :
4460 name : Linting (Python-${{ matrix.python-version }})
45- needs : [version-check-job ]
46- runs-on : ubuntu-latest
61+ needs : [ Version-Check, build-matrix ]
62+ runs-on : ubuntu-24.04
4763 strategy :
4864 fail-fast : false
49- matrix :
50- python-version : ["3.10"]
65+ matrix : ${{ fromJson(needs.build-matrix.outputs.matrix) }}
5166
5267 steps :
5368 - name : SCM Checkout
5469 uses : actions/checkout@v4
5570
5671 - name : Setup Python & Poetry Environment
57- uses : exasol/python-toolbox/.github/actions/python-environment@0.20.0
72+ uses : exasol/python-toolbox/.github/actions/python-environment@1.0.1
5873 with :
59- poetry-version : 2.0.1
6074 python-version : ${{ matrix.python-version }}
6175
62- - name : Run Tests
63- run : poetry run nox -s lint:code
76+ - name : Run lint
77+ run : poetry run -- nox -s lint:code
6478
65- type-check-job :
79+ - name : Upload Artifacts
80+ 81+ with :
82+ name : lint-python${{ matrix.python-version }}
83+ path : |
84+ .lint.txt
85+ .lint.json
86+ include-hidden-files : true
87+
88+ Type-Check :
6689 name : Type Checking (Python-${{ matrix.python-version }})
67- needs : [version-check-job ]
68- runs-on : ubuntu-latest
90+ needs : [ Version-Check, build-matrix ]
91+ runs-on : ubuntu-24.04
6992 strategy :
7093 fail-fast : false
71- matrix :
72- python-version : ["3.10"]
94+ matrix : ${{ fromJson(needs.build-matrix.outputs.matrix) }}
7395
7496 steps :
7597 - name : SCM Checkout
7698 uses : actions/checkout@v4
7799
78100 - name : Setup Python & Poetry Environment
79- uses : exasol/python-toolbox/.github/actions/python-environment@0.20.0
101+ uses : exasol/python-toolbox/.github/actions/python-environment@1.0.1
80102 with :
81- poetry-version : 2.0.1
82103 python-version : ${{ matrix.python-version }}
83104
84- - name : Run Tests
85- run : poetry run nox -s lint:typing
105+ - name : Run type-check
106+ run : poetry run -- nox -s lint:typing
107+
108+ Security :
109+ name : Security Checks (Python-${{ matrix.python-version }})
110+ needs : [ Version-Check, build-matrix ]
111+ runs-on : ubuntu-24.04
112+ strategy :
113+ fail-fast : false
114+ matrix : ${{ fromJson(needs.build-matrix.outputs.matrix) }}
115+
116+ steps :
117+ - name : SCM Checkout
118+ uses : actions/checkout@v4
119+
120+ - name : Setup Python & Poetry Environment
121+ uses :
exasol/python-toolbox/.github/actions/[email protected] 122+ with :
123+ python-version : ${{ matrix.python-version }}
124+
125+ - name : Run security linter
126+ run : poetry run -- nox -s lint:security
127+
128+ - name : Upload Artifacts
129+ 130+ with :
131+ name : security-python${{ matrix.python-version }}
132+ path : .security.json
133+ include-hidden-files : true
134+
135+ Format :
136+ name : Format Check
137+ runs-on : ubuntu-24.04
138+
139+ steps :
140+ - name : SCM Checkout
141+ uses : actions/checkout@v4
142+
143+ - name : Setup Python & Poetry Environment
144+ uses :
exasol/python-toolbox/.github/actions/[email protected] 145+
146+ - name : Run format check
147+ run : poetry run -- nox -s project:format
86148
87149 tests-job :
88150 name : Tests (Python-${{ matrix.python-version }})
89- needs : [build-documentation-job, lint-job, type-check-job ]
151+ needs : [ Documentation, Lint, Type-Check, Security, Format, build-matrix ]
90152 strategy :
91153 fail-fast : false
92- matrix :
93- python-version : ["3.10"]
154+ matrix : ${{ fromJson(needs.build-matrix.outputs.matrix) }}
94155 uses : ./.github/workflows/run-tests.yml
95156 secrets : inherit
96157 with :
0 commit comments