name: CI
on: [push, pull_request]
jobs:
  vint:
    name: Vint
    strategy:
      fail-fast: false
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Run vint with reviewdog
      uses: reviewdog/action-vint@v1.0.1
      with:
        github_token: ${{ secrets.github_token }}
        reporter: github-pr-review
  test:
    name: Unit tests
    strategy:
      matrix:
        os: [macos-latest, ubuntu-latest, windows-latest]
        neovim: [true, false]
        version: [stable, nightly]
    runs-on: ${{ matrix.os }}
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Checkout themis.vim
      uses: actions/checkout@v2
      with:
        repository: thinca/vim-themis
        path: tmp/vim-themis
    - name: Checkout nerdtree
      uses: actions/checkout@v2
      with:
        repository: preservim/nerdtree
        path: tmp/nerdtree
    # Remove apt repos that are known to break from time to time
    # See https://github.com/actions/virtual-environments/issues/323
    - name: Remove broken apt repos [Ubuntu]
      if: matrix.os == 'ubuntu-latest'
      run: |
        for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done
    - name: Install Vim or Neovim
      uses: rhysd/action-setup-vim@v1
      id: vim
      with:
        neovim: ${{ matrix.neovim }}
        version: ${{ matrix.version }}
    - name: Run unit tests
      env:
        THEMIS_VIM: ${{ steps.vim.outputs.executable }}
        THEMIS_PROFILE: profile.txt
      run: |
        echo $THEMIS_VIM
        ./tmp/vim-themis/bin/themis --runtimepath ./tmp/nerdtree --reporter spec tests/
    # TODO: coverage