0
0
Fork 0
mirror of https://github.com/DavidAnson/markdownlint-cli2-action.git synced 2024-11-21 22:01:30 +01:00

Add "command" input to allow invoking -fix and -config commands (fixes #7, fixes #8).

This commit is contained in:
David Anson 2022-07-21 22:24:48 -07:00
parent 4309653070
commit 0820d56e6c
7 changed files with 113 additions and 12 deletions

View file

@ -38,3 +38,38 @@ jobs:
globs: | globs: |
*.md *.md
test/* test/*
command-config:
name: Command = config (test/errors.md, errors)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./
with:
command: config
globs: |
config/.markdownlint.jsonc
test/*
command-config-missing:
name: Command = config (missing configuration file)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./
with:
command: config
command-fix:
name: Command = fix (test/errors.md, no errors)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./
with:
command: fix
command-unsupported:
name: Command = unsupported (fails)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./
with:
command: unsupported

View file

@ -13,6 +13,20 @@ information.
## Inputs ## Inputs
### command (optional)
Command to run (unset, `fix`, or `config`)
If unspecified or `""`, the `markdownlint-cli2` command is run.
If set to `fix`, the `markdownlint-cli2-fix` command is run and supported
issues will be fixed automatically.
If set to `config`, the `markdownlint-cli2-config` command is run and the
first element of `globs` should specify a supported configuration file.
For more detail: [command line documentation for `markdownlint-cli2`][command-line].
### globs (optional) ### globs (optional)
Glob expression(s) of files to lint (newline-delimited) Glob expression(s) of files to lint (newline-delimited)
@ -20,7 +34,7 @@ Glob expression(s) of files to lint (newline-delimited)
The default `*.{md,markdown}` lints all Markdown files in the base directory The default `*.{md,markdown}` lints all Markdown files in the base directory
of a project. of a project.
For more detail, read about [glob syntax in `markdownlint-cli2`][glob-syntax]. For more detail: [glob syntax in `markdownlint-cli2`][glob-syntax].
## Outputs ## Outputs
@ -63,6 +77,7 @@ To prevent linting issues from failing the workflow run:
See [`example.yml`][example-yml] for a simple GitHub workflow that uses See [`example.yml`][example-yml] for a simple GitHub workflow that uses
`markdownlint-cli2-action`. `markdownlint-cli2-action`.
[command-line]: https://github.com/DavidAnson/markdownlint-cli2#command-line
[commonmark]: https://commonmark.org/ [commonmark]: https://commonmark.org/
[example-yml]: .github/workflows/example.yml [example-yml]: .github/workflows/example.yml
[glob-syntax]: https://github.com/DavidAnson/markdownlint-cli2#use [glob-syntax]: https://github.com/DavidAnson/markdownlint-cli2#use

View file

@ -5,6 +5,10 @@ branding:
icon: 'check-square' icon: 'check-square'
color: 'orange' color: 'orange'
inputs: inputs:
command:
description: 'Command to run (unset, "fix", or "config")'
default: ''
required: false
globs: globs:
description: 'Glob expression(s) of files to lint (newline-delimited)' description: 'Glob expression(s) of files to lint (newline-delimited)'
default: '*.{md,markdown}' default: '*.{md,markdown}'

View file

@ -0,0 +1,3 @@
{
"single-trailing-newline": false
}

26
dist/index.js vendored
View file

@ -32158,14 +32158,36 @@ const argv =
split("\n"). split("\n").
filter(String); filter(String);
markdownlintCli2({ const parameters = {
argv, argv,
logMessage, logMessage,
logError logError
}).then( };
let invoke = true;
const command = core.getInput("command");
switch (command) {
case "":
// Default behavior
break;
case "config":
parameters.name = "markdownlint-cli2-config";
break;
case "fix":
parameters.name = "markdownlint-cli2-fix";
parameters.fixDefault = true;
break;
default:
core.setFailed(`Unsupported command: ${command}`);
invoke = false;
break;
}
if (invoke) {
markdownlintCli2(parameters).then(
(code) => code && core.setFailed(`Failed with exit code: ${code}`), (code) => code && core.setFailed(`Failed with exit code: ${code}`),
(error) => core.setFailed(`Failed due to error: ${error}`) (error) => core.setFailed(`Failed due to error: ${error}`)
); );
}
})(); })();

View file

@ -37,11 +37,33 @@ const argv =
split("\n"). split("\n").
filter(String); filter(String);
markdownlintCli2({ const parameters = {
argv, argv,
logMessage, logMessage,
logError logError
}).then( };
let invoke = true;
const command = core.getInput("command");
switch (command) {
case "":
// Default behavior
break;
case "config":
parameters.name = "markdownlint-cli2-config";
break;
case "fix":
parameters.name = "markdownlint-cli2-fix";
parameters.fixDefault = true;
break;
default:
core.setFailed(`Unsupported command: ${command}`);
invoke = false;
break;
}
if (invoke) {
markdownlintCli2(parameters).then(
(code) => code && core.setFailed(`Failed with exit code: ${code}`), (code) => code && core.setFailed(`Failed with exit code: ${code}`),
(error) => core.setFailed(`Failed due to error: ${error}`) (error) => core.setFailed(`Failed due to error: ${error}`)
); );
}

View file

@ -17,7 +17,7 @@
"build": "ncc build markdownlint-cli2-action.js", "build": "ncc build markdownlint-cli2-action.js",
"docker-npm-install": "docker run --rm --tty --name npm-install --volume $PWD:/home/workdir --workdir /home/workdir --user node node:16 npm install", "docker-npm-install": "docker run --rm --tty --name npm-install --volume $PWD:/home/workdir --workdir /home/workdir --user node node:16 npm install",
"docker-npm-run-upgrade": "docker run --rm --tty --name npm-run-upgrade --volume $PWD:/home/workdir --workdir /home/workdir --user node node:16 npm run upgrade", "docker-npm-run-upgrade": "docker run --rm --tty --name npm-run-upgrade --volume $PWD:/home/workdir --workdir /home/workdir --user node node:16 npm run upgrade",
"lint": "eslint *.js", "lint": "eslint *.js && markdownlint-cli2 *.md",
"test": "npm run lint && npm run build && git diff --exit-code", "test": "npm run lint && npm run build && git diff --exit-code",
"upgrade": "npx --yes npm-check-updates --upgrade" "upgrade": "npx --yes npm-check-updates --upgrade"
}, },