@@ -97,223 +97,12 @@ jobs:
9797 echo "skip_helm=true" >> "$GITHUB_OUTPUT"
9898 fi
9999
100- run_cargodeny :
101- name : Run Cargo Deny
102- runs-on : ubuntu-latest
103- strategy :
104- matrix :
105- checks :
106- - advisories
107- - bans licenses sources
108-
109- # Prevent sudden announcement of a new advisory from failing ci:
110- continue-on-error : ${{ matrix.checks == 'advisories' }}
111-
112- steps :
113- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
114- with :
115- persist-credentials : false
116- submodules : recursive
117- - uses : EmbarkStudios/cargo-deny-action@f2ba7abc2abebaf185c833c3961145a3c275caad # v2.0.13
118- with :
119- command : check ${{ matrix.checks }}
120-
121- run_rustfmt :
122- name : Run Rustfmt
123- runs-on : ubuntu-latest
124- steps :
125- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
126- with :
127- persist-credentials : false
128- submodules : recursive
129- - uses : dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
130- with :
131- toolchain : ${{ env.RUST_NIGHTLY_TOOLCHAIN_VERSION }}
132- components : rustfmt
133- - env :
134- RUST_TOOLCHAIN_VERSION : ${{ env.RUST_NIGHTLY_TOOLCHAIN_VERSION }}
135- run : cargo "+$RUST_TOOLCHAIN_VERSION" fmt --all -- --check
136-
137- run_clippy :
138- name : Run Clippy
139- runs-on : ubuntu-latest
140- steps :
141- - name : Install host dependencies
142- uses : awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0
143- with :
144- packages : protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https
145- version : ubuntu-latest
146- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
147- with :
148- persist-credentials : false
149- submodules : recursive
150- - uses : dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
151- with :
152- toolchain : ${{ env.RUST_TOOLCHAIN_VERSION }}
153- components : clippy
154- - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
155- with :
156- key : clippy
157- cache-all-crates : " true"
158- # TODO (@Techassi): Remove this step (unmaintained action, kinda useless step anyway)
159- - name : Run clippy action to produce annotations
160- uses : giraffate/clippy-action@13b9d32482f25d29ead141b79e7e04e7900281e0 # v1.0.1
161- env :
162- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
163- if : env.GITHUB_TOKEN != null
164- with :
165- clippy_flags : --all-targets -- -D warnings
166- reporter : ' github-pr-review'
167- github_token : ${{ secrets.GITHUB_TOKEN }}
168- # TODO (@Techassi): Remove, done by pre-commit
169- - name : Run clippy manually without annotations
170- env :
171- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
172- if : env.GITHUB_TOKEN == null
173- run : cargo clippy --color never -q --all-targets -- -D warnings
174-
175- # TODO (@Techassi): Can be done by pre-commit
176- run_rustdoc :
177- name : Run RustDoc
178- runs-on : ubuntu-latest
179- steps :
180- - name : Install host dependencies
181- uses : awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0
182- with :
183- packages : protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https
184- version : ubuntu-latest
185- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
186- with :
187- submodules : recursive
188- - uses : dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
189- with :
190- toolchain : ${{ env.RUST_TOOLCHAIN_VERSION }}
191- components : rustfmt
192- - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
193- with :
194- key : doc
195- cache-all-crates : " true"
196- - run : cargo doc --document-private-items
197-
198- # TODO (@Techassi): Remove, done by pre-commit
199- run_tests :
200- name : Run Cargo Tests
201- runs-on : ubuntu-latest
202- steps :
203- - name : Install host dependencies
204- uses : awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0
205- with :
206- packages : protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https
207- version : ubuntu-latest
208- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
209- with :
210- persist-credentials : false
211- submodules : recursive
212- - uses : dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
213- with :
214- toolchain : ${{ env.RUST_TOOLCHAIN_VERSION }}
215- - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
216- with :
217- key : test
218- cache-all-crates : " true"
219- - run : cargo test
220-
221-
222- # Similar to check_charts, this tries to render the README, and see if there are unintended changes.
223- # This will save us from merging changes to the wrong file (instead of the templated source), and from
224- # forgetting to render out modifications to the README.
225- check_readme :
226- name : Check if committed README is the one we would render from the available parts
227- runs-on : ubuntu-latest
228- steps :
229- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
230- with :
231- persist-credentials : false
232- submodules : recursive
233- - uses : actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
234- with :
235- python-version : ${{ env.PYTHON_VERSION }}
236- - name : Install jinja2-cli
237- run : pip install jinja2-cli==0.8.2
238- - name : Regenerate charts
239- run : make render-readme
240- - name : Check if committed README were up to date
241- run : git diff --exit-code
242- - name : Git Diff showed uncommitted changes
243- if : ${{ failure() }}
244- uses : actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
245- with :
246- script : |
247- core.setFailed('Committed README are not up to date, please make sure to apply them to the templated partials, and re-commit!')
248-
249- # This job cleans up the CRDs and Helm charts, followed by rebuilding them
250- # It then runs a `git diff` and fails the entire workflow, if any difference is encountered.
251- #
252- # Since CRD files are generated during the 'cargo build' process we need to run this once after
253- # removing the CRD files to ensure that the checked in versions match what the code expects.
254- #
255- # The reason for this step is, that developers are expected to check in up-to-date versions of charts
256- # as we'd otherwise have to build these in CI and commit them back to the PR, which
257- # creates all kinds of problems.
258- # This failsafe simply aborts anything that has not had charts rebuilt before pushing.
259- check_charts :
260- name : Check if committed Helm charts are up to date
261- runs-on : ubuntu-latest
262- steps :
263- - name : Install host dependencies
264- uses : awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.6.0
265- with :
266- packages : protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https
267- version : ubuntu-latest
268- - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
269- with :
270- persist-credentials : false
271- submodules : recursive
272- - name : Set up Helm
273- uses : azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4.3.1
274- with :
275- version : v3.16.1
276- - name : Set up cargo
277- uses : dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
278- with :
279- toolchain : ${{ env.RUST_TOOLCHAIN_VERSION }}
280- - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
281- with :
282- key : charts
283- cache-all-crates : " true"
284- - name : Regenerate charts
285- run : make regenerate-charts
286- - name : Check if committed charts were up to date
287- run : git diff --exit-code
288- - name : Git Diff showed uncommitted changes
289- if : ${{ failure() }}
290- uses : actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
291- with :
292- script : |
293- core.setFailed('Committed charts were not up to date, please regenerate and re-commit!')
294-
295- tests_passed :
296- name : All tests passed
297- needs :
298- - run_udeps
299- - run_cargodeny
300- - run_clippy
301- - run_rustfmt
302- - run_rustdoc
303- - run_tests
304- - check_charts
305- - check_readme
306- runs-on : ubuntu-latest
307- steps :
308- - name : log
309- run : echo All tests have passed!
310-
311100 # TODO (@Techassi): Most of these publishing and signing tasks can be done by our own actions.
312101 # Make use of them just like we do in docker-images.
313102 package_and_publish :
314103 name : Package Charts, Build Docker Image and publish them - ${{ matrix.runner }}
315104 needs :
316- - tests_passed
105+ - run_udeps
317106 - check_helm_publish
318107 strategy :
319108 matrix :
0 commit comments