diff --git a/cli/lib/tasks/install.js b/cli/lib/tasks/install.js index 1f2fd504cb97..d8a033622951 100644 --- a/cli/lib/tasks/install.js +++ b/cli/lib/tasks/install.js @@ -19,7 +19,15 @@ const verbose = require('../VerboseRenderer') const { buildInfo, version } = require('../../package.json') function _getBinaryUrlFromBuildInfo (arch, { commitSha, commitBranch }) { - return `https://cdn.cypress.io/beta/binary/${version}/${os.platform()}-${arch}/${commitBranch}-${commitSha}/cypress.zip` + const platform = os.platform() + + if ((platform === 'win32') && (arch === 'arm64')) { + debug(`detected platform ${platform} architecture ${arch} combination`) + arch = 'x64' + debug(`overriding to download ${platform}-${arch} pre-release binary instead`) + } + + return `https://cdn.cypress.io/beta/binary/${version}/${platform}-${arch}/${commitBranch}-${commitSha}/cypress.zip` } const alreadyInstalledMsg = () => { diff --git a/cli/test/lib/tasks/install_spec.js b/cli/test/lib/tasks/install_spec.js index 8fdea8d4122c..8575c938124a 100644 --- a/cli/test/lib/tasks/install_spec.js +++ b/cli/test/lib/tasks/install_spec.js @@ -502,5 +502,12 @@ describe('/lib/tasks/install', function () { expect(install._getBinaryUrlFromBuildInfo('x64', buildInfo)) .to.eq(`https://cdn.cypress.io/beta/binary/0.0.0-development/linux-x64/aBranchName-abc123/cypress.zip`) }) + + it('overrides win32-arm64 to win32-x64 for pre-release', () => { + os.platform.returns('win32') + + expect(install._getBinaryUrlFromBuildInfo('arm64', buildInfo)) + .to.eq(`https://cdn.cypress.io/beta/binary/0.0.0-development/win32-x64/aBranchName-abc123/cypress.zip`) + }) }) })