A MoonBit CLI port of actionlint 1.7.12 for native and wasm
moon update
make build
# native
./bin/actionlint -help
./bin/actionlint .github/workflows/ci.yml
./bin/actionlint # Discover workflows in the current Git repository
# wasm: run with MoonBit's moonrun, with file and subprocess access
moonrun bin/actionlint.wasm .github/workflows/ci.ymlmoon run --target native . -- -oneline .github/workflows/ci.yml
moon run --target wasm . -- -help
cat workflow.yml | ./bin/actionlint -stdin-filename workflow.yml -
./bin/actionlint -format '{{json .}}' workflow.yml
./bin/actionlint -init-configmake check test cli-test
moon info && moon fmtACTIONLINT_REQUIRE_CHECKERS=1 moon test --target native
ACTIONLINT_REQUIRE_CHECKERS=1 moon test --target wasmpython3 scripts/test_cli.py --release --reference /path/to/original/actionlint
python3 scripts/test_cli.py --target wasm --release --reference /path/to/original/actionlint
python3 scripts/test_behavior.py --target all --reference /path/to/original/actionlint
# Check a single release artifact against stored expectations
python3 scripts/test_behavior.py --target native
python3 scripts/test_behavior.py --target wasm| Subpackage | Responsibility |
|---|---|
| cli | Arguments, command execution, help text, and terminal detection |
| model | YAML nodes, diagnostics, error collectors, shared errors, and quoting |
| yaml | YAML parsing, tag / numeric compatibility, and position corrections |
| json | JSON access, numeric value preservation, syntax diagnostics, and encoding |
| matching | RE2 regex compatibility, Unicode data, and path globs |
| project | Path handling, repository discovery, and workflow file collection |
| config | Configuration parsing, loading, and ignore rules |
| data | Automatically generated built-in baseline data |
| expression | Actions expression parsing, type inference, and untrusted input checks |
| workflow | Structural parsing, lint rules, metadata, external checkers, and linting orchestration |
| template | Output template parsing, validation, and execution |
| output | Diagnostic text, source indicators, and JSON field generation |
Install
Download zipA MoonBit CLI port of actionlint 1.7.12 for native and wasm