name: Lua CI on: push: branches: - main paths: - "**/*.lua" - .github/workflows/lua.yaml pull_request: branches: - main paths: - "**/*.lua" - .github/workflows/lua.yaml 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 steps: - uses: actions/checkout@v6 - id: todays-date run: echo "date=$(date +%F)" >> "$GITHUB_OUTPUT" - name: Restore cache for today's nightly. id: cache-neovim uses: actions/cache@v4 with: path: _neovim key: ${{ runner.os }}-${{ matrix.rev }}-${{ steps.todays-date.outputs.date }} - name: Download neovim ${{ matrix.rev }} env: GH_TOKEN: ${{ github.token }} NEOVIM_VERSION: ${{ matrix.rev }} if: steps.cache-neovim.outputs.cache-hit != 'true' run: | mkdir -p _neovim gh release download \ --output - \ --pattern nvim-linux64.tar.gz \ --repo neovim/neovim \ "$NEOVIM_VERSION" | tar xvz --strip-components 1 --directory _neovim - name: Prepare run: | sudo apt-get update sudo apt-get install -y ripgrep sudo apt-get install -y silversearcher-ag echo "${PWD}/_neovim/bin" >> "$GITHUB_PATH" echo VIM="${PWD}/_neovim/share/nvim/runtime" >> "$GITHUB_ENV" - name: Run tests run: | nvim --version make luatest typecheck: name: Typecheck runs-on: ubuntu-latest strategy: matrix: nvim_version: [ stable ] luals_version: [ 3.13.6 ] steps: - uses: actions/checkout@v6 - uses: rhysd/action-setup-vim@v1 with: neovim: true version: ${{ matrix.nvim_version }} - name: Typecheck env: VIMRUNTIME: /home/runner/nvim-${{ matrix.nvim_version }}/share/nvim/runtime run: | make lua-typecheck