Improve CI linter to provide warnings for potential collision of paramaters
Problem to solve
In general, more warning/error handling in the CI linter will make it easier for developers to get started with GitLab CI and also make identifying issues in complex/long CI files much easier.
example usecase:
When configuring jobs in the gitlab.ci.yml file, some combinations of paramaters can give unexpected results, which can be hard to troubleshoot.
For example:
Job:A
script:
- echo 'foo'
Job:B
dependencies:
- Job:A
when: always
In this case, Job:B is set to run always, but also has a dependency on Job:A. However, Job:A does not define an artifact, and therefore doesnt run, depsite using the always
param. This makes it hard to troubleshoot because it
An additional use case where warnings would be helpful
Variables are passed to runners securely, but once there - they could be accidentally exposed in the logs.
Detect if the yml file has any jobs that may expose a variable in runner logs - such as echo $myvar
in the script:
section. Users are not always aware of this risk, so providing a warning would assist in keeping customers code more secure.
Target audience
Primaryly DevOps engineers, or, anyone working with CI.