From 0de415049fc9bc62355443006053c3f0b1448aae Mon Sep 17 00:00:00 2001 From: Andrew Clark Date: Thu, 3 Jun 2021 12:34:44 -0400 Subject: [PATCH] Support `@latest` in prepare-release-from-ci Since we track these versions in source, we can build `@latest` releases in CI and store them as artifacts. Then when it's time to release, and the build has been verified, we use `prepare-release-from-ci` (the same script we use for `@next` and `@experimental`) to fetch the already built and versioned packages. --- scripts/release/prepare-release-from-ci.js | 3 ++- .../shared-commands/download-build-artifacts.js | 3 +++ scripts/release/shared-commands/parse-params.js | 10 +++++++--- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/release/prepare-release-from-ci.js b/scripts/release/prepare-release-from-ci.js index d10444145e932..c61b3ed6372ed 100755 --- a/scripts/release/prepare-release-from-ci.js +++ b/scripts/release/prepare-release-from-ci.js @@ -23,7 +23,8 @@ const run = async () => { await testPackagingFixture(params); } - await printPrereleaseSummary(params, false); + const isLatestRelease = params.releaseChannel === 'latest'; + await printPrereleaseSummary(params, isLatestRelease); } catch (error) { handleError(error); } diff --git a/scripts/release/shared-commands/download-build-artifacts.js b/scripts/release/shared-commands/download-build-artifacts.js index f09b0f2c2809e..7d2763eabc573 100644 --- a/scripts/release/shared-commands/download-build-artifacts.js +++ b/scripts/release/shared-commands/download-build-artifacts.js @@ -39,10 +39,13 @@ const run = async ({build, cwd, releaseChannel}) => { await exec(`rm -rf ./build/node_modules`, {cwd}); } let sourceDir; + // TODO: Rename release channel to `next` if (releaseChannel === 'stable') { sourceDir = 'oss-stable'; } else if (releaseChannel === 'experimental') { sourceDir = 'oss-experimental'; + } else if (releaseChannel === 'latest') { + sourceDir = 'oss-stable-semver'; } else { console.error('Internal error: Invalid release channel: ' + releaseChannel); process.exit(releaseChannel); diff --git a/scripts/release/shared-commands/parse-params.js b/scripts/release/shared-commands/parse-params.js index b632d06033683..4467007ad8a51 100644 --- a/scripts/release/shared-commands/parse-params.js +++ b/scripts/release/shared-commands/parse-params.js @@ -32,7 +32,7 @@ const paramDefinitions = [ name: 'releaseChannel', alias: 'r', type: String, - description: 'Release channel (stable or experimental)', + description: 'Release channel (stable, experimental, or latest)', }, ]; @@ -40,9 +40,13 @@ module.exports = async () => { const params = commandLineArgs(paramDefinitions); const channel = params.releaseChannel; - if (channel !== 'experimental' && channel !== 'stable') { + if ( + channel !== 'experimental' && + channel !== 'stable' && + channel !== 'latest' + ) { console.error( - theme.error`Invalid release channel (-r) "${channel}". Must be "stable" or "experimental".` + theme.error`Invalid release channel (-r) "${channel}". Must be "stable", "experimental", or "latest".` ); process.exit(1); }