name: Tests on: [push, pull_request] jobs: unit_tests: name: unit tests runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: ubuntu-22.04 url: https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz manager: sudo snap packages: go - os: ubuntu-22.04 url: https://github.com/neovim/neovim/releases/download/v0.7.0/nvim-linux64.tar.gz manager: sudo snap packages: go - os: ubuntu-22.04 url: https://github.com/neovim/neovim/releases/download/v0.7.2/nvim-linux64.tar.gz manager: sudo snap packages: go steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 with: go-version: "^1.18.1" # The Go version to download (if necessary) and use. - run: date +%F > todays-date - name: Restore cache for today's nightly. uses: actions/cache@v2 with: path: _neovim key: ${{ runner.os }}-${{ matrix.url }}-${{ hashFiles('todays-date') }} - name: Prepare run: | ${{ matrix.manager }} install --classic ${{ matrix.packages }} # sudo apt install go test -d _neovim || { mkdir -p _neovim curl -sL ${{ matrix.url }} | tar xzf - --strip-components=1 -C "${PWD}/_neovim" } GO111MODULE=on go install golang.org/x/tools/gopls@latest mkdir -p ~/.local/share/nvim/site/pack/vendor/start git clone --depth 1 https://github.com/nvim-lua/plenary.nvim ~/.local/share/nvim/site/pack/vendor/start/plenary.nvim git clone --depth 1 https://github.com/ray-x/guihua.lua ~/.local/share/nvim/site/pack/vendor/start/guihua.lua git clone --depth 1 https://github.com/nvim-treesitter/nvim-treesitter ~/.local/share/nvim/site/pack/vendor/start/nvim-treesitter git clone --depth 1 https://github.com/kyazdani42/nvim-web-devicons ~/.local/share/nvim/site/pack/vendor/start/nvim-web-devicons git clone --depth 1 https://github.com/neovim/nvim-lspconfig ~/.local/share/nvim/site/pack/vendor/start/nvim-lspconfig ln -s $(pwd) ~/.local/share/nvim/site/pack/vendor/start - name: Run tests run: | export PATH="${PWD}/_neovim/bin:${PATH}" nvim --headless -u tests/minimal.vim -c "TSInstallSync go" -c "q" make test