name: linux_neovim on: push: branches: - master pull_request: branches: - master env: VIM_LSP_GO_VERSION: '1.17' VIM_LSP_GOPLS_VERSION: '0.7.3' VIM_LSP_GOPLS_CACHE_VER: 1 jobs: build: strategy: fail-fast: false matrix: os: [ubuntu-latest] name: [neovim-v04-x64, neovim-v05-x64, neovim-nightly-x64] include: - name: neovim-v04-x64 os: ubuntu-latest neovim_version: v0.4.4 allow_failure: false - name: neovim-v05-x64 os: ubuntu-latest neovim_version: v0.5.1 allow_failure: false - name: neovim-nightly-x64 os: ubuntu-latest neovim_version: nightly allow_failure: true runs-on: ${{matrix.os}} continue-on-error: ${{matrix.allow_failure}} steps: - name: Install dependencies shell: bash run: | # https://github.com/Zettlr/Zettlr/issues/3517 sudo apt-get install libfuse2 - uses: actions/checkout@v4 - name: Download neovim shell: bash run: | mkdir -p ~/nvim/bin curl -L https://github.com/neovim/neovim/releases/download/${{matrix.neovim_version}}/nvim.appimage -o ~/nvim/bin/nvim chmod u+x ~/nvim/bin/nvim continue-on-error: ${{matrix.allow_failure}} - name: Cache gopls id: cache-gopls uses: actions/cache@v4 with: path: bin/gopls key: ${{ runner.os }}-${{ env.VIM_LSP_GO_VERSION }}-${{ env.VIM_LSP_GOPLS_VERSION }}-${{ env.VIM_LSP_GOPLS_CACHE_VER }}-gopls - name: Install Go for gopls if: steps.cache-gopls.outputs.cache-hit != 'true' uses: actions/setup-go@v5 with: go-version: ${{ env.VIM_LSP_GO_VERSION }} - name: Install gopls if: steps.cache-gopls.outputs.cache-hit != 'true' shell: bash run: | go install golang.org/x/tools/gopls@v${{ env.VIM_LSP_GOPLS_VERSION }} gopls version mkdir bin mv "$(which gopls)" ./bin/ env: GO111MODULE: 'on' - name: Download test runner uses: actions/checkout@v4 with: repository: thinca/vim-themis path: ./vim-themis ref: v1.5.5 - name: Run tests shell: bash run: | export PATH=~/nvim/bin:$PATH export PATH=./vim-themis/bin:$PATH export PATH=./bin:$PATH export THEMIS_VIM=nvim nvim --version themis continue-on-error: ${{matrix.allow_failure}}