diff --git a/packages/eas-build-job/src/__tests__/common.test.ts b/packages/eas-build-job/src/__tests__/common.test.ts index 9ffc83688f..de65147ae1 100644 --- a/packages/eas-build-job/src/__tests__/common.test.ts +++ b/packages/eas-build-job/src/__tests__/common.test.ts @@ -24,6 +24,34 @@ describe('StaticWorkflowInterpolationContextZ', () => { expect(StaticWorkflowInterpolationContextZ.parse(context)).toEqual(context); }); + it('accepts app_store_connect context', () => { + const context = { + after: {}, + needs: {}, + workflow: { + id: 'workflow-id', + name: 'workflow-name', + filename: 'workflow.yml', + url: 'https://expo.dev/accounts/example/workflows/workflow-id', + }, + app: { + id: 'app-id', + slug: 'app-slug', + }, + account: { + id: 'account-id', + name: 'account-name', + }, + app_store_connect: { + app: { + id: '1234567890', + }, + }, + }; + + expect(StaticWorkflowInterpolationContextZ.parse(context)).toEqual(context); + }); + it('rejects invalid app and account context', () => { const context = { after: {}, diff --git a/packages/eas-build-job/src/common.ts b/packages/eas-build-job/src/common.ts index 3a20a9407a..1ebeb85b54 100644 --- a/packages/eas-build-job/src/common.ts +++ b/packages/eas-build-job/src/common.ts @@ -259,6 +259,13 @@ export const StaticWorkflowInterpolationContextZ = z.object({ id: z.string(), name: z.string(), }), + app_store_connect: z + .looseObject({ + app: z.looseObject({ + id: z.string(), + }), + }) + .optional(), }); export type StaticWorkflowInterpolationContext = z.infer<