Make `needs:` require the job it refers to by default
Summary
Currently, needs:
is a weak requirement. It means that if needed
job is not present,
we will ignore it and the job will run anyway.
Most people would expect needs:
to be strong requirement, meaning that if a needed
job does not exist (due to only/except
rules), the job that needs
it should also
not run.
Today: Example
build-a:
only: [master]
test-a:
needs: [build-a]
The test-a
will be created when pushed to non-master.
After: Example
The test-a
will not be created, as it requires the build-a
to function.
Edited by Jason Yavorska