Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: make required checks passed if skipped (#37)
Fix #22 A [limitation of GitHub actions](https://github.com/orgs/community/discussions/13690) is that ci jobs that used as checks required to allow a PR to merge, are **always** required, even if they were skipped. In the case they were skipped...well the ci check isn't passed, not allowing a valid PR to merge. A [workaround](https://stackoverflow.com/a/77066140/9771158) is to use `${{ !(failure() || cancelled()) }}` as a condition, meaning: if the dependents jobs didn't fail or weren't cancelled, execute (especially: if dependents jobs were skipped, execute). This can be used as an `if` condition in a dummy job that will always be executed and successful, **unless the dependents jobs failed or were cancelled**. Which is what we want. The [workflow diagram](https://github.com/privacy-scaling-explorations/zk-kit.solidity/actions/runs/10297770771) illustrates well what is going on: ![image](https://github.com/user-attachments/assets/83d4728a-ee5f-45eb-9a40-ea7faf2e4bbe) This PR does not affect any `sol` files, so the `_tests` and `_slither` matrix jobs are all skipped. However `tests` and `slither` which depends on `_tests` and `_slither` respectively and are used as ci required checks, are still executed and pass, allowing the PR to merge. This will speed up even more the CI, and avoid ci checks being a stuck with `waiting for status to be reported` state.
- Loading branch information