Hi all,
I built a small CLI called jflint to lint declarative Jenkinsfiles fully offline, no Jenkins server, no credentials, just Docker.
Why: the most popular VS Code linter (270k+ installs, Jenkins Pipeline Linter Connector) needs a live, reachable Jenkins server to work. jenkinsfile-runner already ships a `lint` command that avoids that, but using it means assembling a matching WAR/plugin set by hand, and its Docker CLI mode trips people up (see issue #461 on jenkinsfile-runner). While building this I also ran into the outdated CA truststore bug on the `latest` image (issue #738) - jflint works around it by always pointing `-w`/`-p` at the WAR and plugins already bundled in the image, so it never triggers the runtime WAR download that fails.
- GitHub: GitHub - johndow-42/jflint · GitHub
- Install: `npm install -g jenkinsfile-lint` (the name `jflint` itself was already taken on npm by an older, unrelated package, so it’s published as jenkinsfile-lint - the installed command is still `jflint`)
Free, MIT-licensed, no telemetry, no server calls.
Full disclosure: I’m the author. Sharing it here because this category seemed like exactly the right place. Happy to hear if it’s useful to anyone, or if there’s an existing tool I should have used instead of building this.