Use toolchain install instead of multiple commands

This commit is contained in:
Héctor Ramón Jiménez 2019-10-27 19:40:00 +01:00
parent 1cba3cf86a
commit 43013c6795
3 changed files with 20 additions and 16 deletions

View File

@ -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) {

View File

@ -30,6 +30,11 @@ 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']);
}
});
}
exports.install = install;

View File

@ -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);