-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci: make required checks passed if skipped #37
Conversation
.github/workflows/main.yml
Outdated
name: Coveralls | ||
uses: coverallsapp/github-action@v2 | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
parallel: true | ||
flag-name: run ${{ join(matrix.*, '-') }} | ||
|
||
test: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dummy job to wrap _tests
@@ -194,3 +207,11 @@ jobs: | |||
const header = '# Slither report' | |||
const body = process.env.REPORT | |||
await script({ github, context, header, body }) | |||
|
|||
slither: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dummy job to wrap _slither
f1ddcc1
to
7fd6b85
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Fix #22
A limitation of GitHub actions 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 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 illustrates well what is going on:
This PR does not affect any
sol
files, so the_tests
and_slither
matrix jobs are all skipped.However
tests
andslither
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.