From 17775c0245feb63732da6b73312d9722805a5674 Mon Sep 17 00:00:00 2001 From: DilumAluthge-LLM <267464666+DilumAluthge-LLM@users.noreply.github.com> Date: Fri, 1 May 2026 01:02:09 -0400 Subject: [PATCH 1/3] Add schema validation CI job Co-authored-by: OpenAI Codex GPT-5 --- .github/workflows/CI.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 6ab8a1f..8ec4392 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -94,8 +94,16 @@ jobs: path: versions.json if-no-files-found: error + schema-check: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 6.0.2 + + - run: npx -p ajv-cli@3.3.0 ajv compile -s schema.json + upload-to-s3: - needs: [package-tests, full-test] + needs: [package-tests, full-test, schema-check] if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' runs-on: ubuntu-latest timeout-minutes: 60 From 1e0e5935c084d339a0d66f5aee6ea99b6d9adc70 Mon Sep 17 00:00:00 2001 From: DilumAluthge-LLM <267464666+DilumAluthge-LLM@users.noreply.github.com> Date: Fri, 1 May 2026 01:06:35 -0400 Subject: [PATCH 2/3] Add portable URL constraints to schema Co-authored-by: OpenAI Codex GPT-5 --- schema.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/schema.json b/schema.json index c79c1c6..08c5338 100644 --- a/schema.json +++ b/schema.json @@ -67,6 +67,14 @@ ".exe", ".gz", ".zip" + ], + "allOf": [ + { + "pattern": "^https://" + }, + { + "pattern": "\\.(?:dmg|exe|gz|zip)$" + } ] }, "asc": { From a2fb7d53151fdc04d0545eaaaea468bfb40b55b9 Mon Sep 17 00:00:00 2001 From: DilumAluthge-LLM <267464666+DilumAluthge-LLM@users.noreply.github.com> Date: Sat, 2 May 2026 16:55:11 -0400 Subject: [PATCH 3/3] Validate current S3 versions.json against schema Co-authored-by: OpenAI Codex [GPT-5] (cherry picked from commit 3fd851977177490ab21e69284d65328cb092321f) --- .github/workflows/CI.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 8ec4392..faf66aa 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -149,5 +149,7 @@ jobs: run: rm -fv versions.json - name: Download the current versions.json from S3 run: curl -LO https://julialang-s3.julialang.org/bin/versions.json + - name: Validate versions.json against schema + run: npx -p ajv-cli@3.3.0 ajv -s schema.json -d versions.json - name: Run the post-build tests on the versions.json that we downloaded from S3 run: julia --project test/more_tests.jl versions.json