name: CI on: push: { branches: ["0.x"] } pull_request: { branches: ["0.x"] } jobs: luacheck: name: Luacheck runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install luarocks run: sudo apt update && sudo apt install -y luarocks - name: Install luacheck run: sudo luarocks install luacheck - name: Run luacheck run: luacheck . stylua: name: StyLua runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Run stylua run: npx @johnnymorganz/stylua-bin --check . cargo-format: name: Cargo Format runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up rust uses: dtolnay/rust-toolchain@stable with: components: rustfmt - name: Lint run: cargo fmt --check test: name: Build and test strategy: matrix: nvim-version: ["v0.9.5", "stable", "nightly"] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up rust uses: dtolnay/rust-toolchain@stable - name: Install dependencies run: sudo apt update && sudo apt install -y build-essential luarocks - name: Install busted run: sudo luarocks install busted - name: Install neovim run: | test -d _neovim || { mkdir -p _neovim curl -sL "https://github.com/neovim/neovim/releases/download/${{ matrix.nvim-version }}/nvim-linux64.tar.gz" | tar xzf - --strip-components=1 -C "${PWD}/_neovim" } - name: Build run: cargo build --release - name: Run tests run: | export PATH="${PWD}/_neovim/bin:${PATH}" export VIM="${PWD}/_neovim/share/nvim/runtime" nvim --version nvim -l ./scripts/busted.lua -o TAP ./lua/ivy/ 2> /dev/null