name: Lua CI on: push: branches: - main paths: - "**/*.lua" pull_request: branches: - main paths: - "**/*.lua" jobs: # reference from: https://github.com/nvim-lua/plenary.nvim/blob/2d9b06177a975543726ce5c73fca176cedbffe9d/.github/workflows/default.yml#L6C3-L43C20 run_tests: name: unit tests runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: ubuntu-22.04 rev: v0.10.0/nvim-linux64.tar.gz steps: - uses: actions/checkout@v3 - run: date +%F > todays-date - name: Restore cache for today's nightly. uses: actions/cache@v3 with: path: _neovim key: ${{ runner.os }}-${{ matrix.rev }}-${{ hashFiles('todays-date') }} - name: Prepare run: | test -d _neovim || { mkdir -p _neovim curl -sL "https://github.com/neovim/neovim/releases/download/${{ matrix.rev }}" | tar xzf - --strip-components=1 -C "${PWD}/_neovim" } - name: Run tests run: | export PATH="${PWD}/_neovim/bin:${PATH}" export VIM="${PWD}/_neovim/share/nvim/runtime" # install nvim-lua/plenary.nvim git clone --depth 1 https://github.com/nvim-lua/plenary.nvim ~/.local/share/nvim/site/pack/vendor/start/plenary.nvim nvim --version make luatest stylua: name: Check Lua style runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 - name: Install stylua uses: baptiste0928/cargo-install@v3 with: crate: stylua features: lua54 - run: stylua --version - run: stylua --color always --check ./lua/ ./plugin/ ./tests/ luacheck: name: Lint Lua runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4 - name: Luacheck linter uses: lunarmodules/luacheck@cc089e3f65acdd1ef8716cc73a3eca24a6b845e4 # ratchet:lunarmodules/luacheck@v1 with: args: ./lua/