1
1
name : Checks
2
2
3
- on : workflow_call
3
+ on :
4
+ workflow_call :
4
5
5
6
jobs :
6
7
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
10
11
11
12
steps :
12
13
- name : SCM Checkout
@@ -15,82 +16,142 @@ jobs:
15
16
fetch-depth : 0
16
17
17
18
- 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]
21
20
22
21
- name : Check Version(s)
23
- run : poetry run version-check version.py
22
+ run : poetry run -- version-check version.py
24
23
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
29
28
30
29
steps :
31
30
- name : SCM Checkout
32
31
uses : actions/checkout@v4
33
32
34
33
- 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]
38
35
39
36
- name : Build Documentation
40
37
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
42
58
43
- lint-job :
59
+ Lint :
44
60
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
47
63
strategy :
48
64
fail-fast : false
49
- matrix :
50
- python-version : ["3.10"]
65
+ matrix : ${{ fromJson(needs.build-matrix.outputs.matrix) }}
51
66
52
67
steps :
53
68
- name : SCM Checkout
54
69
uses : actions/checkout@v4
55
70
56
71
- 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
58
73
with :
59
- poetry-version : 2.0.1
60
74
python-version : ${{ matrix.python-version }}
61
75
62
- - name : Run Tests
63
- run : poetry run nox -s lint:code
76
+ - name : Run lint
77
+ run : poetry run -- nox -s lint:code
64
78
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 :
66
89
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
69
92
strategy :
70
93
fail-fast : false
71
- matrix :
72
- python-version : ["3.10"]
94
+ matrix : ${{ fromJson(needs.build-matrix.outputs.matrix) }}
73
95
74
96
steps :
75
97
- name : SCM Checkout
76
98
uses : actions/checkout@v4
77
99
78
100
- 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
80
102
with :
81
- poetry-version : 2.0.1
82
103
python-version : ${{ matrix.python-version }}
83
104
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
86
148
87
149
tests-job :
88
150
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 ]
90
152
strategy :
91
153
fail-fast : false
92
- matrix :
93
- python-version : ["3.10"]
154
+ matrix : ${{ fromJson(needs.build-matrix.outputs.matrix) }}
94
155
uses : ./.github/workflows/run-tests.yml
95
156
secrets : inherit
96
157
with :
0 commit comments