name: Tests on: [push, pull_request] # Cancel any in-progress CI runs for a PR if it is updated concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true jobs: unit_tests: name: unit tests runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: ubuntu-20.04 url: https://github.com/neovim/neovim/releases/download/nightly/nvim-linux64.tar.gz - os: ubuntu-20.04 url: https://github.com/neovim/neovim/releases/download/v0.8.0/nvim-linux64.tar.gz - os: ubuntu-20.04 url: https://github.com/neovim/neovim/releases/download/v0.7.0/nvim-linux64.tar.gz steps: - uses: actions/checkout@v2 - run: date +%F > todays-date - name: Restore cache for today's nightly. uses: actions/cache@v2 with: path: _neovim key: ${{ runner.os }}-x64-${{ hashFiles('todays-date') }} - name: Prepare dependencies run: | test -d _neovim || { mkdir -p _neovim curl -sL ${{ matrix.url }} | tar xzf - --strip-components=1 -C "${PWD}/_neovim" } mkdir -p ~/.local/share/nvim/site/pack/vendor/start git clone --depth 1 https://github.com/nvim-lua/plenary.nvim.git ~/.local/share/nvim/site/pack/vendor/start/plenary.nvim git clone --depth 1 https://github.com/nvim-neotest/neotest.git ~/.local/share/nvim/site/pack/vendor/start/neotest git clone --depth 1 https://github.com/nvim-treesitter/nvim-treesitter.git ~/.local/share/nvim/site/pack/vendor/start/nvim-treesitter ln -s $(pwd) ~/.local/share/nvim/site/pack/vendor/start export PATH="${PWD}/_neovim/bin:${PATH}" export VIM="${PWD}/_neovim/share/nvim/runtime" nvim --headless -c 'TSInstallSync php | quit' - name: Run tests run: | export PATH="${PWD}/_neovim/bin:${PATH}" export VIM="${PWD}/_neovim/share/nvim/runtime" nvim --version ./scripts/test