diff --git a/lib/main.js b/lib/main.js index b7cf884..a169eeb 100644 --- a/lib/main.js +++ b/lib/main.js @@ -32,14 +32,11 @@ function run() { .filter((target) => target.length > 0); if (version) { yield rustup.install(); + yield exec.exec('rustup', ['toolchain', 'install', version, + ...(components.length > 0 ? ['-c', ...components] : []), + ...(targets.length > 0 ? ['-t', ...targets] : []), + ]); yield exec.exec('rustup', ['default', version]); - yield exec.exec('rustup', ['update', version]); - for (let component of components) { - yield exec.exec('rustup', ['component', 'add', component]); - } - for (let target of targets) { - yield exec.exec('rustup', ['target', 'add', target]); - } } } catch (error) { diff --git a/lib/rustup.js b/lib/rustup.js index 70172fb..e3d06ee 100644 --- a/lib/rustup.js +++ b/lib/rustup.js @@ -30,6 +30,12 @@ function install() { core.debug('rustup is located under: ' + toolPath); core.addPath(path.join(toolPath, 'bin')); } + else { + // Update the GitHub managed VM version of rustup + // to leverage newer features like "latest latest compatible nightly" + yield exec.exec('rustup', ['self', 'update']); + yield exec.exec('rustup', ['set', 'profile', 'minimal']); + } }); } exports.install = install; diff --git a/src/main.ts b/src/main.ts index 0d4db90..1709d96 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,10 +6,12 @@ import * as os from 'os'; async function run() { try { const version = core.getInput('rust-version'); + const components = core.getInput('components') .split(',') .map((component) => component.trim()) .filter((component) => component.length > 0); + const targets = core.getInput('targets') .split(',') .map((target) => target.trim()) @@ -17,16 +19,16 @@ async function run() { if(version) { await rustup.install(); + + await exec.exec( + 'rustup', + ['toolchain', 'install', version, + ...(components.length > 0 ? ['-c', ...components] : []), + ...(targets.length > 0 ? ['-t', ...targets] : []), + ] + ); + await exec.exec('rustup', ['default', version]); - await exec.exec('rustup', ['update', version]); - - for(let component of components) { - await exec.exec('rustup', ['component', 'add', component]); - } - - for(let target of targets) { - await exec.exec('rustup', ['target', 'add', target]); - } } } catch (error) { core.setFailed(error.message); diff --git a/src/rustup.ts b/src/rustup.ts index f2b412c..1613512 100644 --- a/src/rustup.ts +++ b/src/rustup.ts @@ -15,9 +15,11 @@ export async function install() { core.debug('rustup is located under: ' + toolPath); core.addPath(path.join(toolPath, 'bin')); } else { - // update the GitHub managed VM version of rustup + // Update the GitHub managed VM version of rustup // to leverage newer features like "latest latest compatible nightly" await exec.exec('rustup', ['self', 'update']); + + await exec.exec('rustup', ['set', 'profile', 'minimal']); } }