This project builds a static binary of Neovim using GitHub Actions, making it easy to distribute and use Neovim without dependencies.
- Weekly builds: Automatically builds a static Neovim binary every Monday at 2 AM UTC
- Manual triggers: Can also be triggered manually via GitHub Actions UI
- Static compilation: Creates a fully self-contained binary with no external dependencies
- Cross-platform ready: Built on Ubuntu but the resulting binary works on most Linux distributions
The GitHub Actions workflow consists of two jobs:
- Runs on Alpine Linux container
- Installs required build dependencies (cmake, build tools, etc.)
- Clones the stable branch of Neovim from GitHub
- Compiles with static linking (
CMAKE_EXTRA_FLAGS="-DSTATIC_BUILD=1") - Caches the binary for efficiency
- Uploads the binary as a GitHub Actions artifact
- Downloads the compiled binary artifact
- Makes it executable
- Tests the binary by running
--version
The workflow runs automatically every week via cron schedule. No action needed.
- Go to the "Actions" tab in your GitHub repository
- Select "Build Static Neovim" workflow
- Click "Run workflow"
- After a build completes, go to the workflow run
- Download the
static-neovimartifact - Extract and use the
nvim-static-x86_64binary
If you want to build locally, the process is similar:
# Install dependencies (Alpine Linux example)
apk add build-base cmake coreutils curl gettext-tiny-dev git ninja-build
# Clone and build
git clone --depth 1 --branch stable https://github.com/neovim/neovim
cd neovim
make CMAKE_EXTRA_FLAGS="-DSTATIC_BUILD=1"
# The binary will be at build/bin/nvim- Architecture: x86_64
- Branch: stable
- Type: Static binary (no external dependencies)
- Size: Typically ~15-20MB
For more detailed build instructions and options, see the official Neovim build documentation: https://neovim.io/doc/build/
This workflow follows the same license as Neovim. The built binary includes all Neovim components and their respective licenses.