qa: Enforce JSON standard for GCT configs (#1526)

* qa: Enforce JSON lint for GCT configs

* Makefile/GHA: Make output more verbose on success, clean duplicate PHONY and rid excess newlines

* Makefile: Use printf for OS cross-compatibility output
This commit is contained in:
Adrian Gallagher
2024-04-30 16:02:09 +10:00
committed by GitHub
parent b46b793995
commit 1e95ae9b79
4 changed files with 3031 additions and 2990 deletions

24
.github/workflows/configs-json-lint.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: configs-json-lint
on: [push, pull_request]
jobs:
lint:
name: configs JSON lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check configs JSON format
run: |
files=("config_example.json" "testdata/configtest.json")
for file in "${files[@]}"; do
processed_file="${file%.*}_processed.${file##*.}"
jq '.exchanges |= sort_by(.name)' --indent 1 $file > $processed_file
if ! diff $file $processed_file; then
echo "jq differences found in $file! Please run 'make lint_configs'"
exit 1
else
rm $processed_file
echo "No differences found in $file 🌞"
fi
done