Skip to content

Bump the pinned workflow schema to one that allows cache-mode - #114

Merged
AndrewGable merged 1 commit into
mainfrom
rory/workflow-schema-pin
Sep 22, 2026
Merged

AndrewGable merged 1 commit into
mainfrom
rory/workflow-schema-pin

Conversation

@roryabraham

Copy link
Copy Markdown
Contributor

Details

validateWorkflowSchemas.sh validates every workflow in the org against a pinned copy of SchemaStore's github-workflow.json. That pin (5c0bfe97ef, Aug 30) predates cache-mode, so the check rejects it as an additional property. This is what fails the cache-mode: read follow-ups to the actionlint fork switch — for example https://github.com/Expensify/App/actions/runs/35691284470.

This moves the pin to 8b994c0149 (Sep 15), the current tip of that file. It includes #6340, which added cache-mode. I verified locally that the four App workflows the current pin rejects (cla.yml, deployBlocker.yml, finishReleaseCycle.yml, verifyHybridApp.yml) all pass against it.

Do not merge yet

The newer schema also tightens workflow_dispatch input validation, and that fails workflows the current pin accepts. In App these five gain new errors, each on an input that omits type:

  • .github/workflows/testBuild.yml — APP_PULL_REQUEST_URL, MOBILE_EXPENSIFY_PULL_REQUEST_URL
  • .github/workflows/cherryPick.yml — PULL_REQUEST_URL
  • .github/workflows/remote-build-android.yml — app_pull_request_url, mobile_expensify_pull_request_url
  • .github/workflows/remote-build-ios.yml — app_pull_request_url, mobile_expensify_pull_request_url
  • .github/workflows/publishReactNativeArtifacts.yml — app_pull_request_url, mobile_expensify_pull_request_url

Each needs type: string. I only validated App, so other repos may have the same gap, and it will fail their PRs the moment this merges. The check runs from @main, so this has to land after those fixes, not before.

Related Issues

https://github.com/Expensify/Expensify/issues/678960

Manual Tests

Downloaded both schema versions and ran ajv against all of App's workflows. The cache-mode errors disappear under the new pin; the five workflows above are the only new failures, all must have required property 'type' on a workflow_dispatch input.

The schema pin predates SchemaStore's addition of cache-mode to
github-workflow.json, so validateWorkflowSchemas rejects any job that sets it.
Move the pin to 8b994c0149, which includes that change.
@roryabraham
roryabraham marked this pull request as ready for review September 22, 2026 16:10
@AndrewGable
AndrewGable merged commit 3a6ae69 into main Sep 22, 2026
6 of 7 checks passed
@AndrewGable
AndrewGable deleted the rory/workflow-schema-pin branch September 22, 2026 16:11

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8756dc1a7c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

for SCHEMA in github-action.json github-workflow.json; do
info "Downloading $SCHEMA schema..."
if curl "https://raw.githubusercontent.com/SchemaStore/schemastore/5c0bfe97efb759922f71c378584246cc07e7c3ed/src/schemas/json/$SCHEMA" --output "$TEMP_SCHEMA_DIR/$SCHEMA" --silent; then
if curl "https://raw.githubusercontent.com/SchemaStore/schemastore/8b994c014937a9332f2fb53d993eb1a30705677c/src/schemas/json/$SCHEMA" --output "$TEMP_SCHEMA_DIR/$SCHEMA" --silent; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Delay the schema bump until workflow inputs have types

When this commit reaches main, the org-wide validateSchemas job in .github/workflows/validateActions.yml runs this script against every repository using the newly pinned schema. That schema newly rejects the identified App workflows whose workflow_dispatch inputs omit type, so every non-bot App PR will fail this required validation even when unrelated. Land the dependent type: string fixes across affected repositories before activating this pin, or retain the previous validation behavior until they are ready.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants