From 75528d1d15085e5a9291e54b6aff9bfe27601853 Mon Sep 17 00:00:00 2001 From: Ran Cohen Date: Sun, 16 Jan 2022 19:37:28 +0200 Subject: [PATCH 1/4] fix: remove flags defaults and let Tarballs.buildConfig to determine final config --- src/commands/pack/tarballs.ts | 12 ++++-------- src/commands/upload/tarballs.ts | 13 ++++--------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/commands/pack/tarballs.ts b/src/commands/pack/tarballs.ts index 10048cac2..b4c9181e8 100644 --- a/src/commands/pack/tarballs.ts +++ b/src/commands/pack/tarballs.ts @@ -11,20 +11,16 @@ This can be used to create oclif CLIs that use the system node or that come prel static flags = { root: Flags.string({char: 'r', description: 'path to oclif CLI root', default: '.', required: true}), - targets: Flags.string({char: 't', - description: 'comma-separated targets to pack (e.g.: linux-arm,win32-x64)', - default: Tarballs.TARGETS.join(','), - }), - xz: Flags.boolean({description: 'also build xz', allowNo: true, default: true}), - tarball: Flags.string({ char: 't', description: 'optionally specify a path to a tarball already generated by NPM', required: false }) + targets: Flags.string({ char: 't', description: 'comma-separated targets to pack (e.g.: linux-arm,win32-x64)' }), + xz: Flags.boolean({ description: 'also build xz', allowNo: true }), + tarball: Flags.string({ char: 'l', description: 'optionally specify a path to a tarball already generated by NPM', required: false }) } async run(): Promise { const prevCwd = qq.cwd() if (process.platform === 'win32') throw new Error('pack does not function on windows') const {flags} = await this.parse(PackTarballs) - const targets = flags.targets.split(',') - const buildConfig = await Tarballs.buildConfig(flags.root, {xz: flags.xz, targets: targets}) + const buildConfig = await Tarballs.buildConfig(flags.root, {xz: flags.xz, targets: flags?.targets?.split(',')}) if (buildConfig.targets.length === 0) { throw new Error('Please specify one or more valid targets.') } diff --git a/src/commands/upload/tarballs.ts b/src/commands/upload/tarballs.ts index 9dbed0c12..73f86340d 100644 --- a/src/commands/upload/tarballs.ts +++ b/src/commands/upload/tarballs.ts @@ -15,19 +15,14 @@ export default class UploadTarballs extends Command { static flags = { root: Flags.string({char: 'r', description: 'path to oclif CLI root', default: '.', required: true}), - targets: Flags.string({ - char: 't', - description: 'comma-separated targets to upload (e.g.: linux-arm,win32-x64)', - default: Tarballs.TARGETS.join(','), - }), - xz: Flags.boolean({description: 'also upload xz', allowNo: true, default: true}), + targets: Flags.string({ char: 't', description: 'comma-separated targets to upload (e.g.: linux-arm,win32-x64)' }), + xz: Flags.boolean({ description: 'also upload xz', allowNo: true }), } async run(): Promise { const {flags} = await this.parse(UploadTarballs) if (process.platform === 'win32') throw new Error('upload does not function on windows') - const targets = flags.targets.split(',') - const buildConfig = await Tarballs.buildConfig(flags.root, {targets, xz: flags.xz}) + const buildConfig = await Tarballs.buildConfig(flags.root, {xz: flags.xz, targets: flags?.targets?.split(',')}) const {s3Config, dist, config, xz} = buildConfig // fail early if targets are not built @@ -77,7 +72,7 @@ export default class UploadTarballs extends Command { await aws.s3.uploadFile(dist(manifest), {...ManifestS3Options, Key: cloudKey}) } - if (targets.length > 0) log('uploading targets') + if (buildConfig.targets.length > 0) log('uploading targets') // eslint-disable-next-line no-await-in-loop for (const target of buildConfig.targets) await uploadTarball(target) log(`done uploading tarballs & manifests for v${config.version}-${buildConfig.gitSha}`) From 146230fa15f72dc503aaee86c670b8338ec11257 Mon Sep 17 00:00:00 2001 From: Ran Cohen Date: Sun, 16 Jan 2022 19:49:47 +0200 Subject: [PATCH 2/4] fix: applying fix on promote command --- src/commands/pack/tarballs.ts | 6 +++--- src/commands/promote.ts | 11 +++-------- src/commands/upload/tarballs.ts | 4 ++-- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/commands/pack/tarballs.ts b/src/commands/pack/tarballs.ts index b4c9181e8..228f66425 100644 --- a/src/commands/pack/tarballs.ts +++ b/src/commands/pack/tarballs.ts @@ -11,9 +11,9 @@ This can be used to create oclif CLIs that use the system node or that come prel static flags = { root: Flags.string({char: 'r', description: 'path to oclif CLI root', default: '.', required: true}), - targets: Flags.string({ char: 't', description: 'comma-separated targets to pack (e.g.: linux-arm,win32-x64)' }), - xz: Flags.boolean({ description: 'also build xz', allowNo: true }), - tarball: Flags.string({ char: 'l', description: 'optionally specify a path to a tarball already generated by NPM', required: false }) + targets: Flags.string({char: 't', description: 'comma-separated targets to pack (e.g.: linux-arm,win32-x64)'}), + xz: Flags.boolean({description: 'also build xz', allowNo: true}), + tarball: Flags.string({char: 'l', description: 'optionally specify a path to a tarball already generated by NPM', required: false}) } async run(): Promise { diff --git a/src/commands/promote.ts b/src/commands/promote.ts index 9014bfd9c..acc1ed452 100644 --- a/src/commands/promote.ts +++ b/src/commands/promote.ts @@ -15,24 +15,19 @@ export default class Promote extends Command { version: Flags.string({description: 'semantic version of the CLI to promote', required: true}), sha: Flags.string({description: '7-digit short git commit SHA of the CLI to promote', required: true}), channel: Flags.string({description: 'which channel to promote to', required: true, default: 'stable'}), - targets: Flags.string({ - char: 't', - description: 'comma-separated targets to promote (e.g.: linux-arm,win32-x64)', - default: Tarballs.TARGETS.join(','), - }), + targets: Flags.string({char: 't', description: 'comma-separated targets to promote (e.g.: linux-arm,win32-x64)'}), deb: Flags.boolean({char: 'd', description: 'promote debian artifacts'}), macos: Flags.boolean({char: 'm', description: 'promote macOS pkg'}), win: Flags.boolean({char: 'w', description: 'promote Windows exe'}), 'max-age': Flags.string({char: 'a', description: 'cache control max-age in seconds', default: '86400'}), - xz: Flags.boolean({description: 'also upload xz', allowNo: true, default: true}), + xz: Flags.boolean({description: 'also upload xz', allowNo: true}), indexes: Flags.boolean({description: 'append the promoted urls into the index files'}), } async run(): Promise { const {flags} = await this.parse(Promote) const maxAge = `max-age=${flags['max-age']}` - const targets = flags.targets.split(',') - const buildConfig = await Tarballs.buildConfig(flags.root, {targets}) + const buildConfig = await Tarballs.buildConfig(flags.root, {targets: flags?.targets?.split(',')}) const {s3Config, config} = buildConfig const indexDefaults = { version: flags.version, diff --git a/src/commands/upload/tarballs.ts b/src/commands/upload/tarballs.ts index 73f86340d..0fb79cdf6 100644 --- a/src/commands/upload/tarballs.ts +++ b/src/commands/upload/tarballs.ts @@ -15,8 +15,8 @@ export default class UploadTarballs extends Command { static flags = { root: Flags.string({char: 'r', description: 'path to oclif CLI root', default: '.', required: true}), - targets: Flags.string({ char: 't', description: 'comma-separated targets to upload (e.g.: linux-arm,win32-x64)' }), - xz: Flags.boolean({ description: 'also upload xz', allowNo: true }), + targets: Flags.string({char: 't', description: 'comma-separated targets to upload (e.g.: linux-arm,win32-x64)'}), + xz: Flags.boolean({description: 'also upload xz', allowNo: true}), } async run(): Promise { From 55471a3365358e2bc40c8990a0bda6f7d6a4bb71 Mon Sep 17 00:00:00 2001 From: Ran Cohen Date: Sun, 16 Jan 2022 23:18:16 +0200 Subject: [PATCH 3/4] fix: set xz true by default --- src/tarballs/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tarballs/config.ts b/src/tarballs/config.ts index e74cd4e17..07db3caff 100644 --- a/src/tarballs/config.ts +++ b/src/tarballs/config.ts @@ -86,7 +86,7 @@ export async function buildConfig(root: string, options: {xz?: boolean; targets? config, tmp, updateConfig, - xz: typeof options.xz === 'boolean' ? options.xz : Boolean(updateConfig.s3.xz), + xz: options?.xz ?? updateConfig?.s3?.xz ?? true, dist: (...args: string[]) => path.join(config.root, 'dist', ...args), s3Config: updateConfig.s3, nodeVersion, From b33747881c21dd04b33857981273fa48d313e585 Mon Sep 17 00:00:00 2001 From: Ran Cohen Date: Thu, 17 Feb 2022 13:22:45 +0200 Subject: [PATCH 4/4] Update tarballs.ts --- src/commands/pack/tarballs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/pack/tarballs.ts b/src/commands/pack/tarballs.ts index 873eb700f..1f9151f46 100644 --- a/src/commands/pack/tarballs.ts +++ b/src/commands/pack/tarballs.ts @@ -13,7 +13,7 @@ This can be used to create oclif CLIs that use the system node or that come prel root: Flags.string({char: 'r', description: 'path to oclif CLI root', default: '.', required: true}), targets: Flags.string({char: 't', description: 'comma-separated targets to pack (e.g.: linux-arm,win32-x64)'}), xz: Flags.boolean({description: 'also build xz', allowNo: true}), - tarball: Flags.string({char: 'l', description: 'optionally specify a path to a tarball already generated by NPM', required: false}) + tarball: Flags.string({char: 'l', description: 'optionally specify a path to a tarball already generated by NPM', required: false}), } async run(): Promise {