@expo/eas-build-job 0.2.86 → 0.2.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/android.d.ts CHANGED
@@ -11,7 +11,12 @@ export declare enum BuildType {
11
11
  APP_BUNDLE = "app-bundle"
12
12
  }
13
13
  export declare const builderBaseImages: readonly ["default", "latest", "stable", "ubuntu-18.04-android-30-ndk-r19c", "ubuntu-20.04-android-30-ndk-r21e", "ubuntu-18.04-jdk-8-ndk-r19c", "ubuntu-18.04-jdk-11-ndk-r19c", "ubuntu-20.04-jdk-8-ndk-r21e", "ubuntu-20.04-jdk-11-ndk-r21e", "ubuntu-22.04-jdk-8-ndk-r21e", "ubuntu-22.04-jdk-11-ndk-r21e"];
14
- export declare const reactNativeVersionToDefaultBuilderImage: Record<string, typeof builderBaseImages[number]>;
14
+ interface ImageMatchRule {
15
+ image: typeof builderBaseImages[number];
16
+ reactNativeSemverRange: string;
17
+ sdkSemverRange: string;
18
+ }
19
+ export declare const reactNativeImageMatchRules: ImageMatchRule[];
15
20
  export interface BuilderEnvironment {
16
21
  image?: typeof builderBaseImages[number];
17
22
  node?: string;
@@ -58,3 +63,4 @@ export interface Job {
58
63
  };
59
64
  }
60
65
  export declare const JobSchema: Joi.ObjectSchema<any>;
66
+ export {};
package/dist/android.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.JobSchema = exports.reactNativeVersionToDefaultBuilderImage = exports.builderBaseImages = exports.BuildType = void 0;
6
+ exports.JobSchema = exports.reactNativeImageMatchRules = exports.builderBaseImages = exports.BuildType = void 0;
7
7
  const joi_1 = __importDefault(require("joi"));
8
8
  const common_1 = require("./common");
9
9
  const KeystoreSchema = joi_1.default.object({
@@ -30,10 +30,28 @@ exports.builderBaseImages = [
30
30
  'ubuntu-22.04-jdk-8-ndk-r21e',
31
31
  'ubuntu-22.04-jdk-11-ndk-r21e',
32
32
  ];
33
- exports.reactNativeVersionToDefaultBuilderImage = {
34
- '>=0.68.0': 'ubuntu-18.04-jdk-11-ndk-r19c',
35
- '<0.68.0': 'ubuntu-18.04-jdk-8-ndk-r19c',
36
- };
33
+ exports.reactNativeImageMatchRules = [
34
+ {
35
+ image: 'ubuntu-18.04-jdk-11-ndk-r19c',
36
+ reactNativeSemverRange: '>=0.68.0',
37
+ sdkSemverRange: '<46',
38
+ },
39
+ {
40
+ image: 'ubuntu-18.04-jdk-8-ndk-r19c',
41
+ reactNativeSemverRange: '<0.68.0',
42
+ sdkSemverRange: '<46',
43
+ },
44
+ {
45
+ image: 'ubuntu-20.04-jdk-11-ndk-r21e',
46
+ reactNativeSemverRange: '>=0.68.0',
47
+ sdkSemverRange: '>=46',
48
+ },
49
+ {
50
+ image: 'ubuntu-20.04-jdk-8-ndk-r21e',
51
+ reactNativeSemverRange: '<0.68.0',
52
+ sdkSemverRange: '>=46',
53
+ },
54
+ ];
37
55
  const BuilderEnvironmentSchema = joi_1.default.object({
38
56
  image: joi_1.default.string().valid(...exports.builderBaseImages),
39
57
  node: joi_1.default.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"android.js","sourceRoot":"","sources":["../src/android.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport interface Keystore {\n dataBase64: string;\n keystorePassword: string;\n keyAlias: string;\n keyPassword?: string;\n}\n\nconst KeystoreSchema = Joi.object({\n dataBase64: Joi.string().required(),\n keystorePassword: Joi.string().allow('').required(),\n keyAlias: Joi.string().required(),\n keyPassword: Joi.string().allow(''),\n});\n\nexport enum BuildType {\n APK = 'apk',\n APP_BUNDLE = 'app-bundle',\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'ubuntu-18.04-android-30-ndk-r19c', // legacy naming (image with java 8)\n 'ubuntu-20.04-android-30-ndk-r21e', // legacy naming (image with java 8)\n 'ubuntu-18.04-jdk-8-ndk-r19c',\n 'ubuntu-18.04-jdk-11-ndk-r19c',\n 'ubuntu-20.04-jdk-8-ndk-r21e',\n 'ubuntu-20.04-jdk-11-ndk-r21e',\n 'ubuntu-22.04-jdk-8-ndk-r21e',\n 'ubuntu-22.04-jdk-11-ndk-r21e',\n] as const;\n\nexport const reactNativeVersionToDefaultBuilderImage: Record<\n string,\n typeof builderBaseImages[number]\n> = {\n '>=0.68.0': 'ubuntu-18.04-jdk-11-ndk-r19c',\n '<0.68.0': 'ubuntu-18.04-jdk-8-ndk-r19c',\n};\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n ndk?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string().valid(...builderBaseImages),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n ndk: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.ANDROID;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: {\n keystore: Keystore;\n };\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n version?: {\n versionCode?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n versionName?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n runtimeVersion?: string;\n };\n\n // generic\n gradleCommand?: string;\n artifactPath?: string;\n\n // managed\n buildType?: BuildType;\n username?: string;\n\n experimental?: {\n prebuildCommand?: string;\n };\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.ANDROID).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: Joi.object({ keystore: KeystoreSchema.required() }),\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n version: Joi.object({\n versionCode: Joi.string().regex(/^\\d+$/),\n }),\n\n gradleCommand: Joi.string(),\n artifactPath: Joi.string(),\n\n buildType: Joi.string().valid(...Object.values(BuildType)),\n username: Joi.string(),\n\n experimental: Joi.object({\n prebuildCommand: Joi.string(),\n }),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
1
+ {"version":3,"file":"android.js","sourceRoot":"","sources":["../src/android.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport interface Keystore {\n dataBase64: string;\n keystorePassword: string;\n keyAlias: string;\n keyPassword?: string;\n}\n\nconst KeystoreSchema = Joi.object({\n dataBase64: Joi.string().required(),\n keystorePassword: Joi.string().allow('').required(),\n keyAlias: Joi.string().required(),\n keyPassword: Joi.string().allow(''),\n});\n\nexport enum BuildType {\n APK = 'apk',\n APP_BUNDLE = 'app-bundle',\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'ubuntu-18.04-android-30-ndk-r19c', // legacy naming (image with java 8)\n 'ubuntu-20.04-android-30-ndk-r21e', // legacy naming (image with java 8)\n 'ubuntu-18.04-jdk-8-ndk-r19c',\n 'ubuntu-18.04-jdk-11-ndk-r19c',\n 'ubuntu-20.04-jdk-8-ndk-r21e',\n 'ubuntu-20.04-jdk-11-ndk-r21e',\n 'ubuntu-22.04-jdk-8-ndk-r21e',\n 'ubuntu-22.04-jdk-11-ndk-r21e',\n] as const;\n\ninterface ImageMatchRule {\n image: typeof builderBaseImages[number];\n reactNativeSemverRange: string;\n sdkSemverRange: string;\n}\n\nexport const reactNativeImageMatchRules: ImageMatchRule[] = [\n {\n image: 'ubuntu-18.04-jdk-11-ndk-r19c',\n reactNativeSemverRange: '>=0.68.0',\n sdkSemverRange: '<46',\n },\n {\n image: 'ubuntu-18.04-jdk-8-ndk-r19c',\n reactNativeSemverRange: '<0.68.0',\n sdkSemverRange: '<46',\n },\n {\n image: 'ubuntu-20.04-jdk-11-ndk-r21e',\n reactNativeSemverRange: '>=0.68.0',\n sdkSemverRange: '>=46',\n },\n {\n image: 'ubuntu-20.04-jdk-8-ndk-r21e',\n reactNativeSemverRange: '<0.68.0',\n sdkSemverRange: '>=46',\n },\n];\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n ndk?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string().valid(...builderBaseImages),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n ndk: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.ANDROID;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: {\n keystore: Keystore;\n };\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n version?: {\n versionCode?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n versionName?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n runtimeVersion?: string;\n };\n\n // generic\n gradleCommand?: string;\n artifactPath?: string;\n\n // managed\n buildType?: BuildType;\n username?: string;\n\n experimental?: {\n prebuildCommand?: string;\n };\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.ANDROID).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: Joi.object({ keystore: KeystoreSchema.required() }),\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n version: Joi.object({\n versionCode: Joi.string().regex(/^\\d+$/),\n }),\n\n gradleCommand: Joi.string(),\n artifactPath: Joi.string(),\n\n buildType: Joi.string().valid(...Object.values(BuildType)),\n username: Joi.string(),\n\n experimental: Joi.object({\n prebuildCommand: Joi.string(),\n }),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
package/dist/ios.js CHANGED
@@ -26,7 +26,7 @@ exports.builderBaseImages = [
26
26
  ];
27
27
  exports.sdkVersionToDefaultBuilderImage = {
28
28
  '<=44': 'macos-big-sur-11.4-xcode-13.0',
29
- '45': 'macos-monterey-12.3-xcode-13.3',
29
+ '>=45': 'macos-monterey-12.3-xcode-13.3',
30
30
  };
31
31
  const BuilderEnvironmentSchema = joi_1.default.object({
32
32
  image: joi_1.default.string().valid(...exports.builderBaseImages),
package/dist/ios.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ios.js","sourceRoot":"","sources":["../src/ios.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,qCASkB;AAIlB,MAAM,uBAAuB,GAAG,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;IAChD,yBAAyB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClD,uBAAuB,EAAE,aAAG,CAAC,MAAM,CAAC;QAClC,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KAC5C,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAOH,MAAM,sBAAsB,GAAG,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CACjD,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EACvB,uBAAuB,CACxB,CAAC;AAUW,QAAA,iBAAiB,GAAG;IAC/B,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,+BAA+B;IAC/B,+BAA+B;IAC/B,gCAAgC;IAChC,gCAAgC;IAChC,gCAAgC;CACxB,CAAC;AAEE,QAAA,+BAA+B,GAAqD;IAC/F,MAAM,EAAE,+BAA+B;IACvC,IAAI,EAAE,gCAAgC;CACvC,CAAC;AAaF,MAAM,wBAAwB,GAAG,aAAG,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,yBAAiB,CAAC;IAC/C,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,aAAG,CAAC,MAAM,EAAE;IACvB,GAAG,EAAE,kBAAS;CACf,CAAC,CAAC;AA0CU,QAAA,SAAS,GAAG,aAAG,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE;SACf,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAQ,CAAC,CAAC;SACjC,QAAQ,EAAE;IACb,cAAc,EAAE,4BAAmB,CAAC,QAAQ,EAAE;IAC9C,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACrD,oBAAoB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,cAAc,EAAE,aAAG,CAAC,MAAM,EAAE;IAC5B,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC;QAClB,gBAAgB,EAAE,sBAAsB;QACxC,kBAAkB,EAAE,kBAAS;KAC9B,CAAC,CAAC,QAAQ,EAAE;IACb,kBAAkB,EAAE,wBAAwB;IAC5C,KAAK,EAAE,oBAAW,CAAC,OAAO,EAAE;IAC5B,iBAAiB,EAAE,aAAG,CAAC,OAAO,EAAE;IAChC,SAAS,EAAE,aAAG,CAAC,OAAO,EAAE;IACxB,OAAO,EAAE,aAAG,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;KAC1B,CAAC;IAEF,UAAU;IACV,MAAM,EAAE,aAAG,CAAC,MAAM,EAAE;IACpB,kBAAkB,EAAE,aAAG,CAAC,MAAM,EAAE;IAChC,YAAY,EAAE,aAAG,CAAC,MAAM,EAAE;IAE1B,UAAU;IACV,QAAQ,EAAE,aAAG,CAAC,MAAM,EAAE;IAEtB,YAAY,EAAE,aAAG,CAAC,MAAM,CAAC;QACvB,eAAe,EAAE,aAAG,CAAC,MAAM,EAAE;KAC9B,CAAC;CACH,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport type DistributionType = 'store' | 'internal' | 'simulator';\n\nconst TargetCredentialsSchema = Joi.object().keys({\n provisioningProfileBase64: Joi.string().required(),\n distributionCertificate: Joi.object({\n dataBase64: Joi.string().required(),\n password: Joi.string().allow('').required(),\n }).required(),\n});\n\nexport interface TargetCredentials {\n provisioningProfileBase64: string;\n distributionCertificate: DistributionCertificate;\n}\n\nconst BuildCredentialsSchema = Joi.object().pattern(\n Joi.string().required(),\n TargetCredentialsSchema\n);\n\ntype Target = string;\nexport type BuildCredentials = Record<Target, TargetCredentials>;\n\nexport interface DistributionCertificate {\n dataBase64: string;\n password: string;\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'macos-big-sur-11.4-xcode-12.5',\n 'macos-big-sur-11.4-xcode-13.0',\n 'macos-monterey-12.1-xcode-13.2',\n 'macos-monterey-12.3-xcode-13.3',\n 'macos-monterey-12.4-xcode-13.4',\n] as const;\n\nexport const sdkVersionToDefaultBuilderImage: Record<string, typeof builderBaseImages[number]> = {\n '<=44': 'macos-big-sur-11.4-xcode-13.0',\n '45': 'macos-monterey-12.3-xcode-13.3',\n};\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n bundler?: string;\n fastlane?: string;\n cocoapods?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string().valid(...builderBaseImages),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n bundler: Joi.string(),\n fastlane: Joi.string(),\n cocoapods: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.IOS;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: BuildCredentials;\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n simulator?: boolean;\n version?: {\n buildNumber?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n appVersion?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n runtimeVersion?: string;\n };\n\n scheme?: string;\n buildConfiguration?: string;\n artifactPath?: string;\n\n username?: string;\n\n experimental?: {\n prebuildCommand?: string;\n };\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.IOS).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: BuildCredentialsSchema,\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n simulator: Joi.boolean(),\n version: Joi.object({\n buildNumber: Joi.string(),\n }),\n\n // generic\n scheme: Joi.string(),\n buildConfiguration: Joi.string(),\n artifactPath: Joi.string(),\n\n // managed\n username: Joi.string(),\n\n experimental: Joi.object({\n prebuildCommand: Joi.string(),\n }),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
1
+ {"version":3,"file":"ios.js","sourceRoot":"","sources":["../src/ios.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\n\nimport {\n ArchiveSource,\n ArchiveSourceSchema,\n Env,\n EnvSchema,\n Platform,\n Workflow,\n Cache,\n CacheSchema,\n} from './common';\n\nexport type DistributionType = 'store' | 'internal' | 'simulator';\n\nconst TargetCredentialsSchema = Joi.object().keys({\n provisioningProfileBase64: Joi.string().required(),\n distributionCertificate: Joi.object({\n dataBase64: Joi.string().required(),\n password: Joi.string().allow('').required(),\n }).required(),\n});\n\nexport interface TargetCredentials {\n provisioningProfileBase64: string;\n distributionCertificate: DistributionCertificate;\n}\n\nconst BuildCredentialsSchema = Joi.object().pattern(\n Joi.string().required(),\n TargetCredentialsSchema\n);\n\ntype Target = string;\nexport type BuildCredentials = Record<Target, TargetCredentials>;\n\nexport interface DistributionCertificate {\n dataBase64: string;\n password: string;\n}\n\nexport const builderBaseImages = [\n 'default',\n 'latest',\n 'stable',\n 'macos-big-sur-11.4-xcode-12.5',\n 'macos-big-sur-11.4-xcode-13.0',\n 'macos-monterey-12.1-xcode-13.2',\n 'macos-monterey-12.3-xcode-13.3',\n 'macos-monterey-12.4-xcode-13.4',\n] as const;\n\nexport const sdkVersionToDefaultBuilderImage: Record<string, typeof builderBaseImages[number]> = {\n '<=44': 'macos-big-sur-11.4-xcode-13.0',\n '>=45': 'macos-monterey-12.3-xcode-13.3',\n};\n\nexport interface BuilderEnvironment {\n image?: typeof builderBaseImages[number];\n node?: string;\n yarn?: string;\n expoCli?: string;\n bundler?: string;\n fastlane?: string;\n cocoapods?: string;\n env?: Env;\n}\n\nconst BuilderEnvironmentSchema = Joi.object({\n image: Joi.string().valid(...builderBaseImages),\n node: Joi.string(),\n yarn: Joi.string(),\n expoCli: Joi.string(),\n bundler: Joi.string(),\n fastlane: Joi.string(),\n cocoapods: Joi.string(),\n env: EnvSchema,\n});\n\nexport interface Job {\n type: Workflow;\n projectArchive: ArchiveSource;\n platform: Platform.IOS;\n projectRootDirectory: string;\n releaseChannel?: string;\n updates?: {\n channel?: string;\n };\n secrets: {\n buildCredentials?: BuildCredentials;\n environmentSecrets?: Env;\n };\n builderEnvironment?: BuilderEnvironment;\n cache: Cache;\n developmentClient?: boolean;\n simulator?: boolean;\n version?: {\n buildNumber?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n appVersion?: string;\n /**\n * support for this field is implemented, but specifying it is disabled on schema level\n */\n runtimeVersion?: string;\n };\n\n scheme?: string;\n buildConfiguration?: string;\n artifactPath?: string;\n\n username?: string;\n\n experimental?: {\n prebuildCommand?: string;\n };\n}\n\nexport const JobSchema = Joi.object({\n type: Joi.string()\n .valid(...Object.values(Workflow))\n .required(),\n projectArchive: ArchiveSourceSchema.required(),\n platform: Joi.string().valid(Platform.IOS).required(),\n projectRootDirectory: Joi.string().required(),\n releaseChannel: Joi.string(),\n updates: Joi.object({\n channel: Joi.string(),\n }),\n secrets: Joi.object({\n buildCredentials: BuildCredentialsSchema,\n environmentSecrets: EnvSchema,\n }).required(),\n builderEnvironment: BuilderEnvironmentSchema,\n cache: CacheSchema.default(),\n developmentClient: Joi.boolean(),\n simulator: Joi.boolean(),\n version: Joi.object({\n buildNumber: Joi.string(),\n }),\n\n // generic\n scheme: Joi.string(),\n buildConfiguration: Joi.string(),\n artifactPath: Joi.string(),\n\n // managed\n username: Joi.string(),\n\n experimental: Joi.object({\n prebuildCommand: Joi.string(),\n }),\n}).oxor('releaseChannel', 'updates.channel');\n"]}
package/dist/job.d.ts CHANGED
@@ -7,3 +7,5 @@ export declare function sanitizeJob(rawJob: object, { sdkVersion, reactNativeVer
7
7
  reactNativeVersion?: string;
8
8
  sdkVersion?: string;
9
9
  }): Job;
10
+ export declare function setAndroidBuilderImage(job: Job, sdkVersion?: string, reactNativeVersion?: string): void;
11
+ export declare function setIosBuilderImageForManagedJob(job: Job, sdkVersion?: string): void;
package/dist/job.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.sanitizeJob = exports.JobSchema = void 0;
29
+ exports.setIosBuilderImageForManagedJob = exports.setAndroidBuilderImage = exports.sanitizeJob = exports.JobSchema = void 0;
30
30
  const joi_1 = __importDefault(require("joi"));
31
31
  const semver_1 = __importDefault(require("semver"));
32
32
  const common_1 = require("./common");
@@ -50,7 +50,7 @@ function sanitizeJob(rawJob, { sdkVersion, reactNativeVersion } = {}) {
50
50
  setIosBuilderImageForManagedJob(job, sdkVersion);
51
51
  }
52
52
  else if (job.platform === common_1.Platform.ANDROID) {
53
- setAndroidBuilderImage(job, reactNativeVersion);
53
+ setAndroidBuilderImage(job, sdkVersion, reactNativeVersion);
54
54
  }
55
55
  if (error) {
56
56
  throw error;
@@ -60,19 +60,20 @@ function sanitizeJob(rawJob, { sdkVersion, reactNativeVersion } = {}) {
60
60
  }
61
61
  }
62
62
  exports.sanitizeJob = sanitizeJob;
63
- function setAndroidBuilderImage(job, reactNativeVersion) {
63
+ function setAndroidBuilderImage(job, sdkVersion, reactNativeVersion) {
64
64
  var _a;
65
- if (((_a = job.builderEnvironment) === null || _a === void 0 ? void 0 : _a.image) || !reactNativeVersion) {
65
+ if (((_a = job.builderEnvironment) === null || _a === void 0 ? void 0 : _a.image) || !reactNativeVersion || !sdkVersion) {
66
66
  return;
67
67
  }
68
- const ranges = Object.keys(Android.reactNativeVersionToDefaultBuilderImage);
69
- const matchingRange = ranges.find((range) => semver_1.default.satisfies(reactNativeVersion, range));
70
- if (!matchingRange) {
71
- return;
68
+ for (const rule of Android.reactNativeImageMatchRules) {
69
+ if (semver_1.default.satisfies(reactNativeVersion, rule.reactNativeSemverRange) &&
70
+ semver_1.default.satisfies(sdkVersion, rule.sdkSemverRange)) {
71
+ job.builderEnvironment = Object.assign({ image: rule.image }, job.builderEnvironment);
72
+ return;
73
+ }
72
74
  }
73
- const image = Android.reactNativeVersionToDefaultBuilderImage[matchingRange];
74
- job.builderEnvironment = Object.assign({ image }, job.builderEnvironment);
75
75
  }
76
+ exports.setAndroidBuilderImage = setAndroidBuilderImage;
76
77
  function setIosBuilderImageForManagedJob(job, sdkVersion) {
77
78
  var _a;
78
79
  if (job.type !== common_1.Workflow.MANAGED || ((_a = job.builderEnvironment) === null || _a === void 0 ? void 0 : _a.image) || !sdkVersion) {
@@ -86,4 +87,5 @@ function setIosBuilderImageForManagedJob(job, sdkVersion) {
86
87
  const image = Ios.sdkVersionToDefaultBuilderImage[matchingRange];
87
88
  job.builderEnvironment = Object.assign({ image }, job.builderEnvironment);
88
89
  }
90
+ exports.setIosBuilderImageForManagedJob = setIosBuilderImageForManagedJob;
89
91
  //# sourceMappingURL=job.js.map
package/dist/job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\nimport semver from 'semver';\n\nimport { Platform, Workflow } from './common';\nimport * as Android from './android';\nimport * as Ios from './ios';\n\nexport type Job = Android.Job | Ios.Job;\n\nexport const JobSchema = Joi.object<Job>({\n platform: Joi.string()\n .valid(...Object.values(Platform))\n .required(),\n})\n .when(Joi.object({ platform: Platform.ANDROID }).unknown(), { then: Android.JobSchema })\n .when(Joi.object({ platform: Platform.IOS }).unknown(), { then: Ios.JobSchema });\n\nexport function sanitizeJob(\n rawJob: object,\n { sdkVersion, reactNativeVersion }: { reactNativeVersion?: string; sdkVersion?: string } = {}\n): Job {\n const { value, error } = JobSchema.validate(rawJob, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n\n const job: Job = value;\n if (job.platform === Platform.IOS) {\n setIosBuilderImageForManagedJob(job, sdkVersion);\n } else if (job.platform === Platform.ANDROID) {\n setAndroidBuilderImage(job, reactNativeVersion);\n }\n\n if (error) {\n throw error;\n } else {\n return job;\n }\n}\n\nfunction setAndroidBuilderImage(job: Job, reactNativeVersion?: string): void {\n if (job.builderEnvironment?.image || !reactNativeVersion) {\n return;\n }\n\n const ranges = Object.keys(Android.reactNativeVersionToDefaultBuilderImage);\n const matchingRange = ranges.find((range) => semver.satisfies(reactNativeVersion, range));\n if (!matchingRange) {\n return;\n }\n const image = Android.reactNativeVersionToDefaultBuilderImage[matchingRange];\n job.builderEnvironment = {\n image,\n ...job.builderEnvironment,\n };\n}\n\nfunction setIosBuilderImageForManagedJob(job: Job, sdkVersion?: string): void {\n if (job.type !== Workflow.MANAGED || job.builderEnvironment?.image || !sdkVersion) {\n return;\n }\n\n const ranges = Object.keys(Ios.sdkVersionToDefaultBuilderImage);\n const matchingRange = ranges.find((range) => semver.satisfies(sdkVersion, range));\n if (!matchingRange) {\n return;\n }\n const image = Ios.sdkVersionToDefaultBuilderImage[matchingRange];\n job.builderEnvironment = {\n image,\n ...job.builderEnvironment,\n };\n}\n"]}
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/job.ts"],"names":[],"mappings":"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","sourcesContent":["import Joi from 'joi';\nimport semver from 'semver';\n\nimport { Platform, Workflow } from './common';\nimport * as Android from './android';\nimport * as Ios from './ios';\n\nexport type Job = Android.Job | Ios.Job;\n\nexport const JobSchema = Joi.object<Job>({\n platform: Joi.string()\n .valid(...Object.values(Platform))\n .required(),\n})\n .when(Joi.object({ platform: Platform.ANDROID }).unknown(), { then: Android.JobSchema })\n .when(Joi.object({ platform: Platform.IOS }).unknown(), { then: Ios.JobSchema });\n\nexport function sanitizeJob(\n rawJob: object,\n { sdkVersion, reactNativeVersion }: { reactNativeVersion?: string; sdkVersion?: string } = {}\n): Job {\n const { value, error } = JobSchema.validate(rawJob, {\n stripUnknown: true,\n convert: true,\n abortEarly: false,\n });\n\n const job: Job = value;\n if (job.platform === Platform.IOS) {\n setIosBuilderImageForManagedJob(job, sdkVersion);\n } else if (job.platform === Platform.ANDROID) {\n setAndroidBuilderImage(job, sdkVersion, reactNativeVersion);\n }\n\n if (error) {\n throw error;\n } else {\n return job;\n }\n}\n\nexport function setAndroidBuilderImage(\n job: Job,\n sdkVersion?: string,\n reactNativeVersion?: string\n): void {\n if (job.builderEnvironment?.image || !reactNativeVersion || !sdkVersion) {\n return;\n }\n\n for (const rule of Android.reactNativeImageMatchRules) {\n if (\n semver.satisfies(reactNativeVersion, rule.reactNativeSemverRange) &&\n semver.satisfies(sdkVersion, rule.sdkSemverRange)\n ) {\n job.builderEnvironment = {\n image: rule.image,\n ...job.builderEnvironment,\n };\n return;\n }\n }\n}\n\nexport function setIosBuilderImageForManagedJob(job: Job, sdkVersion?: string): void {\n if (job.type !== Workflow.MANAGED || job.builderEnvironment?.image || !sdkVersion) {\n return;\n }\n\n const ranges = Object.keys(Ios.sdkVersionToDefaultBuilderImage);\n const matchingRange = ranges.find((range) => semver.satisfies(sdkVersion, range));\n if (!matchingRange) {\n return;\n }\n const image = Ios.sdkVersionToDefaultBuilderImage[matchingRange];\n job.builderEnvironment = {\n image,\n ...job.builderEnvironment,\n };\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/eas-build-job",
3
- "version": "0.2.86",
3
+ "version": "0.2.87",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [