4141 TERM : xterm-256color
4242
4343jobs :
44+ detect-schema-changes :
45+ name : " Detect Schema Changes"
46+ runs-on : ubuntu-latest
47+ permissions :
48+ contents : read
49+ outputs :
50+ schemas_changed : ${{ steps.filter.outputs.schemas }}
51+ steps :
52+ - name : " Checkout code"
53+ uses : actions/checkout@v5
54+
55+ - name : " Check for schema changes"
56+ uses : dorny/paths-filter@v3
57+ id : filter
58+ with :
59+ filters : |
60+ schemas:
61+ - 'src/cloudevents/**'
62+ - 'src/typescript-schema-generator/**'
63+ - 'src/python-schema-generator/**'
64+ - 'src/digital-letters-events/**'
65+
4466 check-generated-dependencies :
4567 name : " Check generated dependencies"
68+ needs : [detect-schema-changes]
69+ if : needs.detect-schema-changes.outputs.schemas_changed == 'true'
4670 runs-on : ubuntu-latest
47- timeout-minutes : 5
71+ timeout-minutes : 4
4872 permissions :
4973 contents : read
5074 packages : read
80104 uses : actions/setup-python@v6
81105 with :
82106 python-version : ${{ inputs.python_version }}
107+ cache : ' pip'
108+ cache-dependency-path : ' **/requirements*.txt'
83109 - name : " Run unit test suite"
84110 run : |
85111 make test-unit
@@ -106,7 +132,7 @@ jobs:
106132 test-lint :
107133 name : " Linting"
108134 runs-on : ubuntu-latest
109- timeout-minutes : 5
135+ timeout-minutes : 4
110136 permissions :
111137 contents : read
112138 packages : read
@@ -117,6 +143,8 @@ jobs:
117143 uses : actions/setup-python@v6
118144 with :
119145 python-version : ${{ inputs.python_version }}
146+ cache : ' pip'
147+ cache-dependency-path : ' **/requirements*.txt'
120148 - uses : ./.github/actions/node-install
121149 with :
122150 node-version : ${{ inputs.nodejs_version }}
@@ -127,7 +155,7 @@ jobs:
127155 test-typecheck :
128156 name : " Typecheck"
129157 runs-on : ubuntu-latest
130- timeout-minutes : 5
158+ timeout-minutes : 4
131159 permissions :
132160 contents : read
133161 packages : read
@@ -143,30 +171,14 @@ jobs:
143171 - name : " Run typecheck"
144172 run : |
145173 make test-typecheck
146- test-coverage :
147- name : " Test coverage"
148- needs : [test-unit]
149- runs-on : ubuntu-latest
150- timeout-minutes : 5
151- permissions :
152- contents : read
153- steps :
154- - name : " Checkout code"
155- uses : actions/checkout@v5
156- - name : " Run test coverage check"
157- run : |
158- make test-coverage
159- - name : " Save the coverage check result"
160- run : |
161- echo "Nothing to save"
162174 perform-static-analysis :
163175 name : " Perform static analysis"
164176 needs : [test-unit]
165177 runs-on : ubuntu-latest
166178 permissions :
167179 id-token : write
168180 contents : read
169- timeout-minutes : 5
181+ timeout-minutes : 4
170182 steps :
171183 - name : " Checkout code"
172184 uses : actions/checkout@v5
0 commit comments