Skip to content

Commit 2eef0a4

Browse files
authored
fix(scripts): store clients generated in a batch in temp directory (#3323)
1 parent d36403a commit 2eef0a4

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

Diff for: scripts/generate-clients/.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
.aws-models/
1+
.aws-models/
2+
.sdk-codegen/

Diff for: scripts/generate-clients/code-gen-dir.js

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const getCodeGenOutputDir = (dir) =>
1515
const CODE_GEN_PROTOCOL_TESTS_OUTPUT_DIR = getCodeGenOutputDir("protocol-test-codegen");
1616
const CODE_GEN_GENERIC_CLIENT_OUTPUT_DIR = getCodeGenOutputDir("generic-client-test-codegen");
1717
const CODE_GEN_SDK_OUTPUT_DIR = getCodeGenOutputDir("sdk-codegen");
18+
const TEMP_CODE_GEN_SDK_OUTPUT_DIR = normalize(join(__dirname, ".sdk-codegen"));
1819

1920
module.exports = {
2021
CODE_GEN_ROOT,
@@ -25,4 +26,5 @@ module.exports = {
2526
CODE_GEN_GENERIC_CLIENT_OUTPUT_DIR,
2627
DEFAULT_CODE_GEN_INPUT_DIR,
2728
TEMP_CODE_GEN_INPUT_DIR,
29+
TEMP_CODE_GEN_SDK_OUTPUT_DIR,
2830
};

Diff for: scripts/generate-clients/code-gen.js

+14-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
// @ts-check
22
const { basename, join, relative } = require("path");
3-
const { emptyDirSync } = require("fs-extra");
3+
const { copySync, emptyDirSync } = require("fs-extra");
44
const { copyFileSync } = require("fs");
55
const { spawnProcess } = require("../utils/spawn-process");
6-
const { CODE_GEN_ROOT, CODE_GEN_SDK_ROOT, TEMP_CODE_GEN_INPUT_DIR } = require("./code-gen-dir");
6+
const {
7+
CODE_GEN_ROOT,
8+
CODE_GEN_SDK_ROOT,
9+
CODE_GEN_SDK_OUTPUT_DIR,
10+
TEMP_CODE_GEN_INPUT_DIR,
11+
TEMP_CODE_GEN_SDK_OUTPUT_DIR,
12+
} = require("./code-gen-dir");
713
const { getModelFilepaths } = require("./get-model-filepaths");
814

915
const generateClients = async (models, batchSize) => {
@@ -22,7 +28,13 @@ const generateClients = async (models, batchSize) => {
2228
copyFileSync(filepath, join(TEMP_CODE_GEN_INPUT_DIR, filename));
2329
}
2430
await spawnProcess("./gradlew", options, { cwd: CODE_GEN_ROOT });
31+
// We're copying generated code to temporary directory as it's cleans
32+
// codegen directory in every run.
33+
// Refs: https://github.com/aws/aws-sdk-js-v3/issues/3321
34+
copySync(CODE_GEN_SDK_OUTPUT_DIR, TEMP_CODE_GEN_SDK_OUTPUT_DIR);
2535
}
36+
copySync(TEMP_CODE_GEN_SDK_OUTPUT_DIR, CODE_GEN_SDK_OUTPUT_DIR);
37+
emptyDirSync(TEMP_CODE_GEN_SDK_OUTPUT_DIR);
2638
};
2739

2840
const generateProtocolTests = async () => {

0 commit comments

Comments
 (0)