Simplify CI job architecture for Go linting
What does this MR do?
Simplifies the CI pipeline:
- Renames the
code_qualityjob togo:lintfor clarity of purpose and consistency withshell:lintanddockerfile:lint. - Renames
gl-code-quality-report.jsontogl-golangci-lint-report.json. - Enables hard failure for the
go:lintjob (i.e., removesallow_failure: true), ensuring code quality standards are strictly enforced. - Removes the
static QACI job, which is now redundant sincego:lintfails hard.
Why was this MR needed?
Previously, allow_failure: true was used to allow the code_quality job to fail "softly" (i.e., fail with warning) if the linter flagged issues, and the downstream static QA job handled gating the pipeline success based on the code_quality report's contents.
allow_failure: true was used to ensure the report is always uploaded (so MR annotations appear), but artifacts: when: always handles that independently of job success.
By removing allow_failure: true for code_quality (now called go:lint), there is no need for static QA.
What's the best way to test this MR?
Inspect the CI pipeline and observe that static QA is no longer present.
What are the relevant issue numbers?
N/A
Edited by Daniel Keenan