yamllint: Lint more YAML extensions
What does this MR do and why?
This MR allows yamllint
to inspect YAML with extensions for example:
config/gitlab.yml.example
config/database.yml.decomposed-postgresql
- See diff below for more
Because some extensions are binary or contain invalid syntax the following extensions were excluded:
-
.erb
- ERB makes YAML invalid sometimes -
.swp
,.swo
,.swn
- Vim swap files. See https://vimhelp.org/recover.txt.html -
.gz
,.bz2
- Produced by asset pipeline (local-only)
Follow-up of !106945 (comment 1209475215)
Screenshots
lefthook catching error in config/gitlab.yml.example
|
---|
Matches .gitlab-ci.yml
|
Matches config/gitlab.yml.example
|
---|---|
https://gitlab.com/gitlab-org/gitlab/-/jobs/3479816384 | https://gitlab.com/gitlab-org/gitlab/-/jobs/3479841954 |
How to set up and validate locally
scripts/lint-yaml.sh .
# Inspect all opened files
strace -ff -e trace=openat scripts/lint-yaml.sh .
Diff before/after opened files
Click to expand
--- files.before 2022-12-15 14:20:39.144274573 +0100
+++ files.after 2022-12-15 14:18:26.445754828 +0100
@@ -2784,7 +2784,10 @@
./config/audit_events/types/policy_project_updated.yml
./config/bullet.yml
./config/cable.yml
+./config/cable.yml.example
./config/database.yml
+./config/database.yml.decomposed-postgresql
+./config/database.yml.postgresql
./config/dependency_decisions.yml
./config/environments
./config/events
@@ -3419,6 +3422,7 @@
./config/feature_flags/undefined/gitaly_user_merge_branch_access_error.yml
./config/gitlab_loose_foreign_keys.yml
./config/gitlab.yml
+./config/gitlab.yml.example
./config/helpers
./config/helpers/incremental_webpack_compiler
./config/initializers
@@ -5373,9 +5377,12 @@
./config/redis.shared_state.yml
./config/redis.trace_chunks.yml
./config/resque.yml
+./config/resque.yml.example
./config/routes
./config/secrets.yml
+./config/secrets.yml.example
./config/sidekiq_queues.yml
+./config/sidekiq.yml.example
./config/storage.yml
./config/weak_password_digests.yml
./coverage
@@ -12192,6 +12199,7 @@
./.gitlab/ci/qa.gitlab-ci.yml
./.gitlab/ci/rails
./.gitlab/ci/rails.gitlab-ci.yml
+./.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb
./.gitlab/ci/rails/shared.gitlab-ci.yml
./.gitlab/ci/releases.gitlab-ci.yml
./.gitlab/ci/reports.gitlab-ci.yml
@@ -24551,6 +24559,8 @@
./qa/qa/fixtures/designs
./qa/qa/fixtures/designs/update
./qa/qa/fixtures/kubernetes_agent
+./qa/qa/fixtures/kubernetes_agent/agentk-config.yaml.erb
+./qa/qa/fixtures/kubernetes_agent/agentk-manifest.yaml.erb
./qa/qa/fixtures/kubernetes_agent/galatic-empire-manifest.yaml
./qa/qa/fixtures/ldap
./qa/qa/fixtures/ldap/admin
@@ -24559,21 +24569,41 @@
./qa/qa/fixtures/metrics_dashboards/templating.yml
./qa/qa/fixtures/package_managers
./qa/qa/fixtures/package_managers/composer
+./qa/qa/fixtures/package_managers/composer/composer_upload_package.yaml.erb
./qa/qa/fixtures/package_managers/conan
+./qa/qa/fixtures/package_managers/conan/conan_upload_install_package.yaml.erb
./qa/qa/fixtures/package_managers/generic
+./qa/qa/fixtures/package_managers/generic/generic_upload_install_package.yaml.erb
./qa/qa/fixtures/package_managers/helm
+./qa/qa/fixtures/package_managers/helm/Chart.yaml.erb
+./qa/qa/fixtures/package_managers/helm/helm_install_package.yaml.erb
+./qa/qa/fixtures/package_managers/helm/helm_upload_package.yaml.erb
./qa/qa/fixtures/package_managers/maven
./qa/qa/fixtures/package_managers/maven/gradle
+./qa/qa/fixtures/package_managers/maven/gradle/gradle_install_package.yaml.erb
+./qa/qa/fixtures/package_managers/maven/gradle/gradle_upload_package.yaml.erb
./qa/qa/fixtures/package_managers/maven/group
./qa/qa/fixtures/package_managers/maven/group/consumer
+./qa/qa/fixtures/package_managers/maven/group/consumer/gitlab_ci.yaml.erb
./qa/qa/fixtures/package_managers/maven/group/producer
+./qa/qa/fixtures/package_managers/maven/group/producer/gitlab_ci.yaml.erb
./qa/qa/fixtures/package_managers/maven/project
+./qa/qa/fixtures/package_managers/maven/project/gitlab_ci.yaml.erb
./qa/qa/fixtures/package_managers/maven/project/request_forwarding
+./qa/qa/fixtures/package_managers/maven/project/request_forwarding/gitlab_ci.yaml.erb
./qa/qa/fixtures/package_managers/npm
+./qa/qa/fixtures/package_managers/npm/npm_install_package_instance.yaml.erb
+./qa/qa/fixtures/package_managers/npm/npm_upload_install_package_project.yaml.erb
+./qa/qa/fixtures/package_managers/npm/npm_upload_package_instance.yaml.erb
./qa/qa/fixtures/package_managers/nuget
+./qa/qa/fixtures/package_managers/nuget/nuget_install_package.yaml.erb
+./qa/qa/fixtures/package_managers/nuget/nuget_upload_package.yaml.erb
./qa/qa/fixtures/package_managers/pypi
+./qa/qa/fixtures/package_managers/pypi/pypi_upload_install_package.yaml.erb
./qa/qa/fixtures/package_managers/rubygems
+./qa/qa/fixtures/package_managers/rubygems/rubygems_upload_package.yaml.erb
./qa/qa/fixtures/package_managers/terraform
+./qa/qa/fixtures/package_managers/terraform/module_upload.yaml.erb
./qa/qa/fixtures/script_extensions
./qa/qa/fixtures/software_licenses
./qa/qa/fixtures/web_ide
@@ -45300,6 +45330,7 @@
./shared/tmp/gitlab_exports/test/abcd
./sidekiq_cluster
./.solargraph.yml
+./.solargraph.yml.example
./spec
./spec/benchmarks
./spec/bin
Done via
strace -ff -e trace=openat scripts/lint-yaml.sh . 2>&1 | rg -o -r '$1' '"(\S+)",' | sort > files.after
git checkout master
strace -ff -e trace=openat scripts/lint-yaml.sh . 2>&1 | rg -o -r '$1' '"(\S+)",' | sort > files.before
diff -u files.before files.after
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Peter Leitzen