Skip to content

[eas-build-job] Accept legacy command/path custom function shape in function.yml - #4095

Draft
sswrk wants to merge 1 commit into
szymonswierk/eng-22387-eas-cli-validate-hook-composite-functionsfrom
szymonswierk/eng-25402-eas-build-job-legacy-function-shape
Draft

[eas-build-job] Accept legacy command/path custom function shape in function.yml#4095
sswrk wants to merge 1 commit into
szymonswierk/eng-22387-eas-cli-validate-hook-composite-functionsfrom
szymonswierk/eng-25402-eas-build-job-legacy-function-shape

Conversation

@sswrk

@sswrk sswrk commented Jul 27, 2026

Copy link
Copy Markdown
Member

Why

We want to grandfather the legacy reusable functions from custom builds (https://docs.expo.dev/custom-builds/functions/) into the new reusable functions that can be used in workflows. This is to make the migration from custom builds to workflows easier.

Currently, we only support composite functions. The first step towards extending the support is modifying the eas-build-job Zod schema.

How

  • Added the legacyFunction module with Zod schemas to match the legacy custom builds functions.
    • Two separate schemas: LegacyCommandFunctionConfigZ (functions with command: present) and LegacyPathFunctionConfigZ (functions with path: present).
  • Extracted compositeFunction and created a new localFunction module with schema that is a union of composite function schema and legacy function schemas.

Test Plan

Added unit tests.

@linear-code

linear-code Bot commented Jul 27, 2026

Copy link
Copy Markdown

ENG-25402

sswrk commented Jul 27, 2026

Copy link
Copy Markdown
Member Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@sswrk sswrk added the no changelog PR that doesn't require a changelog entry label Jul 27, 2026
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from e893fae to 3b018d6 Compare July 28, 2026 09:04
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 3b018d6 to 891ef23 Compare July 28, 2026 12:58
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 891ef23 to 27f53d7 Compare July 28, 2026 13:11
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 27f53d7 to e8d69a0 Compare July 28, 2026 15:30
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from e8d69a0 to 702bea2 Compare July 29, 2026 09:01
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch 2 times, most recently from 961f32c to 9d5f159 Compare July 29, 2026 13:40
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 9d5f159 to 36a1945 Compare July 30, 2026 15:09
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 12c14b7 to 6118b1f Compare July 30, 2026 15:34
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 6118b1f to 3a694f5 Compare July 30, 2026 15:44
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch 2 times, most recently from 69c604d to ffbd85c Compare July 31, 2026 10:06
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch 2 times, most recently from cd43f27 to 4a879c6 Compare July 31, 2026 14:08
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 4a879c6 to 4ee8986 Compare July 31, 2026 14:46
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from 4ee8986 to e0c8fb9 Compare July 31, 2026 17:06
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch 2 times, most recently from bb9bc43 to 6d2b4f2 Compare August 4, 2026 09:45
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch 4 times, most recently from b98bbfd to a241370 Compare August 4, 2026 13:46
@sswrk sswrk added the ai-review Commits pushed to PRs with this label be automatically reviewed. label Aug 4, 2026
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from a241370 to d957ecb Compare August 4, 2026 14:16
@sswrk
sswrk force-pushed the szymonswierk/eng-25402-eas-build-job-legacy-function-shape branch from d957ecb to ef13e90 Compare August 4, 2026 14:22
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

⏩ The changelog entry check has been skipped since the "no changelog" label is present.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 AI code review

Decision: Approve

Overall PR risk: Medium. The change modifies existing behavior in local function config parsing and package exports. The affected surface is bounded to local function schemas, where callers can see new parse results or new rejection for mixed shapes. No specialist reviewer reported a warning or critical finding.

No findings.


This review is advisory — it never blocks a merge and never auto-approves.

@codecov

codecov Bot commented Aug 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.43%. Comparing base (81eb14f) to head (ef13e90).

Additional details and impacted files
@@                                         Coverage Diff                                          @@
##           szymonswierk/eng-22387-eas-cli-validate-hook-composite-functions    #4095      +/-   ##
====================================================================================================
+ Coverage                                                             62.42%   62.43%   +0.02%     
====================================================================================================
  Files                                                                  1008     1010       +2     
  Lines                                                                 45712    45728      +16     
  Branches                                                               9622     9622              
====================================================================================================
+ Hits                                                                  28530    28546      +16     
  Misses                                                                15721    15721              
  Partials                                                               1461     1461              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Labels

ai-review Commits pushed to PRs with this label be automatically reviewed. no changelog PR that doesn't require a changelog entry

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant