123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- name: CI
- on:
- push:
- branches: '**'
- pull_request:
- branches:
- - 'master'
- - 'release-[0-9]+.[0-9]+'
- jobs:
- unixish:
- name: ${{ matrix.os }} ${{ matrix.flavor }} (cc=${{ matrix.cc }})
- strategy:
- fail-fast: false
- matrix:
- include:
- - flavor: asan
- cc: clang-12
- runner: ubuntu-20.04
- os: linux
- - flavor: lint
- cc: gcc
- runner: ubuntu-20.04
- os: linux
- - flavor: tsan
- cc: clang-12
- runner: ubuntu-20.04
- os: linux
- - cc: clang
- runner: macos-10.15
- os: osx
- - flavor: functionaltest-lua
- cc: gcc
- runner: ubuntu-20.04
- os: linux
- runs-on: ${{ matrix.runner }}
- if: github.event.pull_request.draft == false
- env:
- CC: ${{ matrix.cc }}
- CI_OS_NAME: ${{ matrix.os }}
- steps:
- - uses: actions/checkout@v2
- - name: Setup commom environment variables
- run: ./.github/workflows/env.sh ${{ matrix.flavor }}
- - name: Install apt packages
- if: matrix.os == 'linux'
- run: |
- sudo apt-get update
- sudo apt-get install -y autoconf automake build-essential ccache cmake cpanminus cscope gcc-multilib gdb gettext gperf language-pack-tr libtool-bin locales ninja-build pkg-config python3 python3-pip python3-setuptools unzip valgrind xclip
- - name: Install new clang
- if: matrix.flavor == 'asan' || matrix.flavor == 'tsan'
- run: |
- wget https://apt.llvm.org/llvm.sh
- chmod a+x llvm.sh
- sudo ./llvm.sh 12
- rm llvm.sh
- - name: Install brew packages
- if: matrix.os == 'osx'
- run: |
- # Workaround brew issues
- rm -f /usr/local/bin/2to3
- brew update >/dev/null
- brew upgrade
- brew install automake ccache perl cpanminus ninja
- - name: Setup interpreter packages
- run: |
- ./ci/before_install.sh
- ./ci/install.sh
- - name: Cache dependencies
- uses: actions/cache@v2
- with:
- path: |
- ${{ env.CACHE_NVIM_DEPS_DIR }}
- ~/.ccache
- key: ${{ runner.os }}-${{ matrix.flavor }}-${{ matrix.cc }}-${{ hashFiles('cmake/*', 'third-party/**', '**/CMakeLists.txt') }}-${{ github.base_ref }}
- - name: Build third-party
- run: ./ci/before_script.sh
- - name: Build and test
- run: ./ci/script.sh
- - name: Cache dependencies
- if: ${{ success() }}
- run: ./ci/before_cache.sh
- windows:
- runs-on: windows-2016
- if: github.event.pull_request.draft == false
- env:
- DEPS_BUILD_DIR: ${{ format('{0}/nvim-deps', github.workspace) }}
- DEPS_PREFIX: ${{ format('{0}/nvim-deps/usr', github.workspace) }}
- strategy:
- fail-fast: false
- matrix:
- config: [ MINGW_64-gcov, MINGW_32, MSVC_64, MSVC_32 ]
- name: windows (${{ matrix.config }})
- steps:
- - uses: actions/checkout@v2
- - uses: actions/cache@v2
- with:
- path: ${{ env.DEPS_BUILD_DIR }}
- key: ${{ matrix.config }}-${{ hashFiles('third-party\**') }}
- - name: Run CI
- run: powershell ci\build.ps1
- env:
- CONFIGURATION: ${{ matrix.config }}
|