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/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" } sudo apt-get update sudo apt-get install -y ripgrep sudo apt-get install -y silversearcher-ag - 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 typecheck: name: Typecheck runs-on: ubuntu-latest strategy: matrix: nvim_version: [ stable ] luals_version: [ 3.13.6 ] steps: - name: Checkout Code uses: actions/checkout@v3 - uses: rhysd/action-setup-vim@v1 with: neovim: true version: ${{ matrix.nvim_version }} - name: Install luals run: | mkdir -p luals curl -L "https://github.com/LuaLS/lua-language-server/releases/download/${{ matrix.luals_version }}/lua-language-server-${{ matrix.luals_version }}-linux-x64.tar.gz" | tar zx --directory luals - run: echo "luals/bin" >> "$GITHUB_PATH" - name: Checkout dependencies run: | mkdir -p deps DEPS=( "folke/neodev.nvim" "nvim-treesitter/nvim-treesitter" "stevearc/dressing.nvim" "nvim-lua/plenary.nvim" "MunifTanjim/nui.nvim" "echasnovski/mini.nvim" "nvim-telescope/telescope.nvim" "hrsh7th/nvim-cmp" "ibhagwan/fzf-lua" "nvim-tree/nvim-web-devicons" "zbirenbaum/copilot.lua" "Bilal2453/luvit-meta" "folke/lazy.nvim" ) for dep in "${DEPS[@]}"; do repo_name=$(echo $dep | cut -d'/' -f2) git clone --depth 1 "https://github.com/${dep}.git" "deps/${repo_name}" done - name: Typecheck env: VIMRUNTIME: /home/runner/nvim-${{ matrix.nvim_version }}/share/nvim/runtime DEPS_PATH: /home/runner/work/avante.nvim/avante.nvim/deps/ run: | make lua-typecheck