mirror of
https://github.com/actions-rs/cargo.git
synced 2024-11-14 05:26:33 +02:00
Smarter args parser and a few debug messages
This commit is contained in:
parent
de5e75cc84
commit
40cbaa365c
6 changed files with 27 additions and 15 deletions
|
@ -1,8 +1,9 @@
|
||||||
import * as args from '../src/args'
|
import * as input from '../src/input'
|
||||||
|
|
||||||
const testEnvVars = {
|
const testEnvVars = {
|
||||||
INPUT_COMMAND: 'build',
|
INPUT_COMMAND: 'build',
|
||||||
INPUT_ARGS: '--release --target x86_64-unknown-linux-gnu --no-default-features --features unstable',
|
// There are few unnecessary spaces here to check that args parser works properly
|
||||||
|
INPUT_ARGS: ' --release --target x86_64-unknown-linux-gnu --no-default-features --features unstable ',
|
||||||
'INPUT_USE-CROSS': 'true',
|
'INPUT_USE-CROSS': 'true',
|
||||||
INPUT_TOOLCHAIN: '+nightly'
|
INPUT_TOOLCHAIN: '+nightly'
|
||||||
}
|
}
|
||||||
|
@ -14,7 +15,7 @@ describe('actions-rs/check', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Parses action input into cargo input', async () => {
|
it('Parses action input into cargo input', async () => {
|
||||||
const result = args.parse();
|
const result = input.parse();
|
||||||
|
|
||||||
expect(result.command).toBe('build');
|
expect(result.command).toBe('build');
|
||||||
expect(result.args).toStrictEqual([
|
expect(result.args).toStrictEqual([
|
2
dist/index.js
vendored
2
dist/index.js
vendored
File diff suppressed because one or more lines are too long
13
package-lock.json
generated
13
package-lock.json
generated
|
@ -1,13 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "cargo",
|
"name": "cargo",
|
||||||
"version": "1.0.0",
|
"version": "0.1.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": {
|
"@actions/core": {
|
||||||
"version": "1.0.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/core/-/core-1.1.0.tgz",
|
||||||
"integrity": "sha512-aMIlkx96XH4E/2YZtEOeyrYQfhlas9jIRkfGPqMwXD095Rdkzo4lB6ZmbxPQSzD+e1M+Xsm98ZhuSMYGv/AlqA=="
|
"integrity": "sha512-KKpo3xzo0Zsikni9tbOsEQkxZBGDsYSJZNkTvmo0gPSXrc98TBOcdTvKwwjitjkjHkreTggWdB1ACiAFVgsuzA=="
|
||||||
},
|
},
|
||||||
"@actions/exec": {
|
"@actions/exec": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
@ -4413,6 +4413,11 @@
|
||||||
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
|
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"string-argv": {
|
||||||
|
"version": "0.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
|
||||||
|
"integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg=="
|
||||||
|
},
|
||||||
"string-length": {
|
"string-length": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
|
||||||
|
|
|
@ -28,9 +28,10 @@
|
||||||
"url": "https://github.com/actions-rs/cargo/issues"
|
"url": "https://github.com/actions-rs/cargo/issues"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.0.0",
|
"@actions/core": "^1.0.1",
|
||||||
"@actions/exec": "^1.0.0",
|
"@actions/exec": "^1.0.1",
|
||||||
"@actions/io": "^1.0.0"
|
"@actions/io": "^1.0.1",
|
||||||
|
"string-argv": "^0.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^24.0.13",
|
"@types/jest": "^24.0.13",
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
import * as exec from '@actions/exec';
|
import * as exec from '@actions/exec';
|
||||||
|
|
||||||
|
import stringArgv from 'string-argv';
|
||||||
|
|
||||||
// Workaround for a GH bug: https://github.com/actions/toolkit/issues/127
|
// Workaround for a GH bug: https://github.com/actions/toolkit/issues/127
|
||||||
//
|
//
|
||||||
// For input `all-features: true` it will generate the `INPUT_ALL-FEATURES: true`
|
// For input `all-features: true` it will generate the `INPUT_ALL-FEATURES: true`
|
||||||
|
@ -41,8 +43,7 @@ export interface Input {
|
||||||
|
|
||||||
export function parse(): Input {
|
export function parse(): Input {
|
||||||
const command = getInput('command');
|
const command = getInput('command');
|
||||||
// TODO: This probably will strike back later
|
const args = stringArgv(getInput('args'));
|
||||||
const args = getInput('args').split(' ');
|
|
||||||
let toolchain = getInput('toolchain');
|
let toolchain = getInput('toolchain');
|
||||||
if (toolchain.startsWith('+')) {
|
if (toolchain.startsWith('+')) {
|
||||||
toolchain = toolchain.slice(1);
|
toolchain = toolchain.slice(1);
|
||||||
|
|
|
@ -10,12 +10,13 @@ async function getCross(): Promise<string> {
|
||||||
try {
|
try {
|
||||||
return await io.which('cross', true);
|
return await io.which('cross', true);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.warning('Unable to find cross, installing it now');
|
core.debug('Unable to find cross, installing it now');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
core.startGroup('Install cross');
|
||||||
core.warning('Git version of cross will be installed, \
|
core.warning('Git version of cross will be installed, \
|
||||||
see https://github.com/actions-rs/cargo/issues/1');
|
see https://github.com/actions-rs/cargo/issues/1');
|
||||||
await exec.exec('cargo', [
|
await exec.exec('cargo', [
|
||||||
'install',
|
'install',
|
||||||
'--rev',
|
'--rev',
|
||||||
|
@ -25,6 +26,9 @@ async function getCross(): Promise<string> {
|
||||||
]);
|
]);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
|
throw new Error(error);
|
||||||
|
} finally {
|
||||||
|
core.endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Expecting it to be in PATH already
|
// Expecting it to be in PATH already
|
||||||
|
|
Loading…
Reference in a new issue