diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf13a74..cd1ac05 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,70 +1,88 @@ 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 uses: JohnnyMorganz/stylua-action@v4.0.0 with: token: ${{ secrets.GITHUB_TOKEN }} version: latest args: --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 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 luajit build-essential + run: sudo apt update && sudo apt install -y luajit 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/nightly/nvim-linux64.tar.gz" | tar xzf - --strip-components=1 -C "${PWD}/_neovim" + } - name: Build run: cargo build --release - name: Test run: find lua -name "*_test.lua" | xargs luajit scripts/test.lua + + - name: Run tests + run: | + export PATH="${PWD}/_neovim/bin:${PATH}" + export VIM="${PWD}/_neovim/share/nvim/runtime" + + nvim --version + nvim -l ./scripts/busted.lua ./lua