CI for your editor. Your code gets a test suite; your editor config gets pushed and prayed over. This action boots your nvim config on the runner — a genuinely clean machine — with your declared plugins provisioned, and fails the build if the editor fails. The error that stops your init is quoted, not summarized.
# .github/workflows/vim.yml
name: vim.pro check
on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: vim-pro/check@v1What it does, in order:
- Finds your config, whatever the layout — a bare config repo,
.config/nvim, chezmoi'sdot_config/nvim, stow-styleaspects/nvim/.config/nvim, or a legacyvimrc. - Provisions your plugins the way your manager expects them — lazy.nvim, vim.pack, native packages via your submodules — so the boot measures your config, not your network.
- Boots it, headless, and reads what actually happened: startup time from nvim's own clock, real init errors with their traces folded in, which plugins actually loaded.
- Fails the build when the editor fails. A config that dies on a clean machine is exactly the thing you want to learn from a pull request rather than from a new laptop.
Options:
- uses: vim-pro/check@v1
with:
nvim-version: nightly # default: stable — run both jobs to get early warning
editor: both # default: nvim — 'vim' boots your vimrc in real Vim,
# 'both' reports both editors' verdicts
fail-on: abort # default: error — 'abort' only fails a dead initA vimrc full of options nvim removed is still legal Vim — editor: vim
answers the question its author actually lives with, and editor: both
surfaces a fact nothing else does: the same config, clean in Vim, erroring
in Neovim (or the reverse). A repo with no vimrc skips the Vim row honestly.
The engine is the same one vim.pro uses to boot every
connected config. Run it locally too: nvim --clean -l check.lua from your
dotfiles root, with nvim (0.10+) and git on your PATH. Written in Lua and
run by nvim itself — the check's only dependency is the thing it tests, and
the editor under test is exactly the editor doing the testing.