@expo/build-tools 0.1.113 → 0.1.116
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/utils/project.js +0 -14
- package/dist/utils/project.js.map +1 -1
- package/package.json +6 -6
- package/templates/eas-build.gradle +19 -34
package/dist/utils/project.js
CHANGED
|
@@ -40,20 +40,6 @@ async function setup(ctx) {
|
|
|
40
40
|
ctx.logger.info('Using app configuration:');
|
|
41
41
|
ctx.logger.info(JSON.stringify(appConfig, null, 2));
|
|
42
42
|
});
|
|
43
|
-
await ctx.runBuildPhase(eas_build_job_1.BuildPhase.RUN_EXPO_DOCTOR, async () => {
|
|
44
|
-
const spawnOptions = {
|
|
45
|
-
cwd: ctx.reactNativeProjectDirectory,
|
|
46
|
-
logger: ctx.logger,
|
|
47
|
-
env: ctx.env,
|
|
48
|
-
};
|
|
49
|
-
ctx.logger.info('Running "expo doctor"');
|
|
50
|
-
try {
|
|
51
|
-
await ctx.runExpoCliCommand('doctor', spawnOptions);
|
|
52
|
-
}
|
|
53
|
-
catch (err) {
|
|
54
|
-
ctx.logger.error({ err }, 'Command "expo doctor" failed.');
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
43
|
}
|
|
58
44
|
exports.setup = setup;
|
|
59
45
|
async function downloadAndUnpackProject(ctx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,kEAA4C;AAC5C,uDAAyE;AACzE,sEAAuC;AACvC,wDAA0B;AAI1B,mCAAiD;AACjD,mCAAsD;AACtD,qDAAwE;AAEjE,KAAK,UAAU,KAAK,CAAmB,GAAuB;IACnE,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;YACrB,MAAM,IAAA,mCAA2B,EAAC,GAAG,CAAC,CAAC;SACxC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,IAAA,wBAAgB,EAAC,GAAG,EAAE,YAAI,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/D,IAAI;YACF,MAAM,mBAAmB,GAAG,MAAM,IAAA,gCAAe,EAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACnF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC/D;QAAC,OAAO,GAAQ,EAAE;YACjB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;SACzE;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,aAAa,CAAC,0BAAU,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\n\nimport downloadFile from '@expo/downloader';\nimport { ArchiveSourceType, BuildPhase, Job } from '@expo/eas-build-job';\nimport spawn from '@expo/turtle-spawn';\nimport fs from 'fs-extra';\n\nimport { BuildContext } from '../context';\n\nimport { Hook, runHookIfPresent } from './hooks';\nimport { createNpmrcIfNotExistsAsync } from './npmrc';\nimport { findPackagerRootDir, readPackageJson } from './packageManager';\n\nexport async function setup<TJob extends Job>(ctx: BuildContext<TJob>): Promise<void> {\n await ctx.runBuildPhase(BuildPhase.PREPARE_PROJECT, async () => {\n await downloadAndUnpackProject(ctx);\n if (ctx.env.NPM_TOKEN) {\n await createNpmrcIfNotExistsAsync(ctx);\n }\n });\n\n await ctx.runBuildPhase(BuildPhase.PRE_INSTALL_HOOK, async () => {\n await runHookIfPresent(ctx, Hook.PRE_INSTALL);\n });\n\n await ctx.runBuildPhase(BuildPhase.INSTALL_DEPENDENCIES, async () => {\n await installDependencies(ctx);\n });\n\n await ctx.runBuildPhase(BuildPhase.READ_PACKAGE_JSON, async () => {\n try {\n const packageJsonContents = await readPackageJson(ctx.reactNativeProjectDirectory);\n ctx.logger.info('Using package.json:');\n ctx.logger.info(JSON.stringify(packageJsonContents, null, 2));\n } catch (err: any) {\n ctx.logger.warn(`Failed to parse or read package.json: ${err.message}`);\n }\n });\n\n await ctx.runBuildPhase(BuildPhase.READ_APP_CONFIG, async () => {\n const appConfig = ctx.appConfig;\n ctx.logger.info('Using app configuration:');\n ctx.logger.info(JSON.stringify(appConfig, null, 2));\n });\n}\n\nasync function downloadAndUnpackProject<TJob extends Job>(ctx: BuildContext<TJob>): Promise<void> {\n const projectTarball = path.join(ctx.workingdir, 'project.tar.gz');\n if (ctx.job.projectArchive.type === ArchiveSourceType.S3) {\n throw new Error('ArchiveSourceType.S3 should be resolved earlier to url');\n } else if (ctx.job.projectArchive.type === ArchiveSourceType.PATH) {\n await fs.copy(ctx.job.projectArchive.path, projectTarball); // used in eas-build-cli\n } else if (ctx.job.projectArchive.type === ArchiveSourceType.URL) {\n try {\n await downloadFile(ctx.job.projectArchive.url, projectTarball, { retry: 3 });\n } catch (err: any) {\n ctx?.reportError?.('Failed to download project archive', err);\n throw err;\n }\n }\n\n await spawn(\n 'tar',\n ['--strip-components', '1', '-zxf', 'project.tar.gz', '-C', ctx.buildDirectory],\n {\n cwd: ctx.workingdir,\n logger: ctx.logger,\n }\n );\n}\n\nasync function installDependencies<TJob extends Job>(ctx: BuildContext<TJob>): Promise<void> {\n const packagerRunDir = findPackagerRootDir(ctx.reactNativeProjectDirectory);\n if (packagerRunDir !== ctx.reactNativeProjectDirectory) {\n const relativeReactNativeProjectDirectory = path.relative(\n ctx.buildDirectory,\n ctx.reactNativeProjectDirectory\n );\n ctx.logger.info(`We detected that '${relativeReactNativeProjectDirectory}' is a workspace`);\n }\n\n const relativePackagerRunDir = path.relative(ctx.buildDirectory, packagerRunDir);\n ctx.logger.info(\n `Running ${ctx.packageManager} in ${\n relativePackagerRunDir\n ? `directory '${relativePackagerRunDir}'`\n : 'the root dir of your repository'\n } `\n );\n await spawn(ctx.packageManager, ['install'], {\n cwd: packagerRunDir,\n logger: ctx.logger,\n env: ctx.env,\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/build-tools",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.116",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -21,24 +21,24 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@expo/config": "6.0.11",
|
|
23
23
|
"@expo/config-plugins": "4.0.11",
|
|
24
|
-
"@expo/downloader": "0.0.
|
|
24
|
+
"@expo/downloader": "0.0.19",
|
|
25
25
|
"@expo/eas-build-job": "0.2.68",
|
|
26
26
|
"@expo/fastlane": "0.0.27",
|
|
27
27
|
"@expo/logger": "0.0.22",
|
|
28
28
|
"@expo/package-manager": "^0.0.47",
|
|
29
29
|
"@expo/plist": "^0.0.11",
|
|
30
|
-
"@expo/template-file": "0.1.
|
|
30
|
+
"@expo/template-file": "0.1.21",
|
|
31
31
|
"@expo/turtle-spawn": "0.0.22",
|
|
32
32
|
"@expo/xcpretty": "^4.1.1",
|
|
33
33
|
"fast-glob": "^3.2.5",
|
|
34
34
|
"find-yarn-workspace-root": "^2.0.0",
|
|
35
|
-
"fs-extra": "^
|
|
35
|
+
"fs-extra": "^10.0.1",
|
|
36
36
|
"node-forge": "^1.2.1",
|
|
37
37
|
"nullthrows": "^1.1.1",
|
|
38
38
|
"plist": "^3.0.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@types/fs-extra": "^9.0.
|
|
41
|
+
"@types/fs-extra": "^9.0.13",
|
|
42
42
|
"@types/jest": "^26.0.20",
|
|
43
43
|
"@types/node": "^16.11.26",
|
|
44
44
|
"@types/node-forge": "^1.0.1",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@types/uuid": "^3.4.5",
|
|
47
47
|
"@types/xml2js": "^0.4.5",
|
|
48
48
|
"jest": "^27.5.1",
|
|
49
|
-
"memfs": "^3.
|
|
49
|
+
"memfs": "^3.4.1",
|
|
50
50
|
"ts-jest": "^27.1.3",
|
|
51
51
|
"typescript": "^4.6.2"
|
|
52
52
|
}
|
|
@@ -5,47 +5,32 @@ import java.nio.file.Paths
|
|
|
5
5
|
android {
|
|
6
6
|
signingConfigs {
|
|
7
7
|
release {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
def credentialsJson = rootProject.file("../credentials.json");
|
|
9
|
+
def credentials = new groovy.json.JsonSlurper().parse(credentialsJson)
|
|
10
|
+
def keystorePath = Paths.get(credentials.android.keystore.keystorePath);
|
|
11
|
+
def storeFilePath = keystorePath.isAbsolute()
|
|
12
|
+
? keystorePath
|
|
13
|
+
: rootProject.file("..").toPath().resolve(keystorePath);
|
|
14
|
+
|
|
15
|
+
storeFile storeFilePath.toFile()
|
|
16
|
+
storePassword credentials.android.keystore.keystorePassword
|
|
17
|
+
keyAlias credentials.android.keystore.keyAlias
|
|
18
|
+
if (credentials.android.keystore.containsKey("keyPassword")) {
|
|
19
|
+
keyPassword credentials.android.keystore.keyPassword
|
|
20
|
+
} else {
|
|
21
|
+
// key password is required by Gradle, but PKCS keystores don't have one
|
|
22
|
+
// using the keystore password seems to satisfy the requirement
|
|
23
|
+
keyPassword credentials.android.keystore.keystorePassword
|
|
24
|
+
}
|
|
10
25
|
}
|
|
11
26
|
}
|
|
12
27
|
|
|
13
28
|
buildTypes {
|
|
14
29
|
release {
|
|
15
|
-
|
|
30
|
+
signingConfig android.signingConfigs.release
|
|
16
31
|
}
|
|
17
32
|
debug {
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
tasks.whenTaskAdded {
|
|
24
|
-
android.signingConfigs.release {
|
|
25
|
-
def credentialsJson = rootProject.file("../credentials.json");
|
|
26
|
-
def credentials = new groovy.json.JsonSlurper().parse(credentialsJson)
|
|
27
|
-
def keystorePath = Paths.get(credentials.android.keystore.keystorePath);
|
|
28
|
-
def storeFilePath = keystorePath.isAbsolute()
|
|
29
|
-
? keystorePath
|
|
30
|
-
: rootProject.file("..").toPath().resolve(keystorePath);
|
|
31
|
-
|
|
32
|
-
storeFile storeFilePath.toFile()
|
|
33
|
-
storePassword credentials.android.keystore.keystorePassword
|
|
34
|
-
keyAlias credentials.android.keystore.keyAlias
|
|
35
|
-
if (credentials.android.keystore.containsKey("keyPassword")) {
|
|
36
|
-
keyPassword credentials.android.keystore.keyPassword
|
|
37
|
-
} else {
|
|
38
|
-
// key password is required by Gradle, but PKCS keystores don't have one
|
|
39
|
-
// using the keystore password seems to satisfy the requirement
|
|
40
|
-
keyPassword credentials.android.keystore.keystorePassword
|
|
33
|
+
signingConfig android.signingConfigs.release
|
|
41
34
|
}
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
android.buildTypes.release {
|
|
45
|
-
signingConfig android.signingConfigs.release
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
android.buildTypes.debug {
|
|
49
|
-
signingConfig android.signingConfigs.release
|
|
50
|
-
}
|
|
51
36
|
}
|