* chore: used native action-centric methods for testing * pass the GitHub token to the `gh` cli
87 lines
2.2 KiB
YAML
87 lines
2.2 KiB
YAML
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
|