name: build

on: [push, pull_request]

jobs:
  check:
    strategy:
      fail-fast: false
      matrix:
          include:
              - vimbin: vim
                vimtag: v7.4.052
              - vimbin: vim
                vimtag: v7.4.629
              - vimbin: vim
                vimtag: v7.4.1689
              - vimbin: vim
                vimtag: v8.0.0027
              - vimbin: vim
                vimtag: v8.0.1453
              - vimbin: vim
                vimtag: v8.1.2269
                # vimtag: ["v7.4.052", "v7.4.629", "v7.4.1689", "v8.0.0027", "v8.0.1453", "v8.1.2269"]
              # - vimbin: nvim
                # vimtag: v0.4.3
                # vimtag: ["v0.4.3", "v0.4.3", "v0.4.3", "v0.4.2", "v0.3.8", "v0.3.7", "v0.3.5", "v0.3.4", "v0.3.3", "v0.3.2", "v0.3.1", "v0.3.0"]
    runs-on: ubuntu-18.04
    env:
        VIM_BIN: ${{ matrix.vimbin }}
        VIM_TAG: ${{ matrix.vimtag }}
        DEPS: /home/runner/work/SpaceVim/deps
    steps:
    - name: Checkout
      uses: actions/checkout@master
    - name: Install dependencies
      run: |
          sudo apt-get update
          sudo apt-get install -y autoconf automake build-essential cmake gcc-multilib gettext gperf libtool-bin locales ninja-build pkg-config unzip python3-pip python-pip libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev python3-dev ruby-dev lua5.1 liblua5.1-dev libperl-dev ninja-build
    - name: Install ${{ matrix.vimbin }} ${{ matrix.vimtag }}
      run: |
        .ci/install/linux.sh $VIM_BIN $VIM_TAG
    - name: Run test
      run: |
        if [ "$VIM_BIN" = "nvim" ]; then
            export PATH="${DEPS}/_neovim/${VIM_TAG}/bin:${PATH}"
            export VIM="${DEPS}/_neovim/${VIM_TAG}/share/nvim/runtime"
        else
            export PATH="${DEPS}/_vim/${VIM_TAG}/bin:${PATH}"
            export VIM="${DEPS}/_vim/${VIM_TAG}/share/vim"
        fi
        export PATH="/home/runner/.local/bin:${PATH}"
        echo "\$PATH: \"${PATH}\""
        echo "\$VIM: \"${VIM}\""
        echo "=================  ${VIM_BIN} version ======================"
        $VIM_BIN --version
        pip3 install --upgrade "pip < 21.0"
        pip3 install covimerage virtualenv codecov
        make test_coverage
        covimerage -vv xml --omit 'build/*' --omit 'bundle/*'
        codecov -X search gcov pycov -f coverage.xml
