diff options
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r-- | .github/workflows/ci.yml | 78 |
1 files changed, 71 insertions, 7 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0dbe484108..d07b9fdac7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,9 @@ name: CI on: push: - branches: '**' + branches: + - 'master' + - 'release-[0-9]+.[0-9]+' pull_request: types: [opened, synchronize, reopened, ready_for_review] branches: @@ -33,10 +35,6 @@ jobs: - cc: clang runner: macos-11.0 os: osx - - flavor: functionaltest-lua - cc: gcc - runner: ubuntu-20.04 - os: linux runs-on: ${{ matrix.runner }} timeout-minutes: 45 if: github.event.pull_request.draft == false @@ -46,7 +44,7 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Setup commom environment variables + - name: Setup common environment variables run: ./.github/workflows/env.sh ${{ matrix.flavor }} - name: Install apt packages @@ -105,7 +103,7 @@ jobs: strategy: fail-fast: false matrix: - config: [ MINGW_64-gcov, MINGW_32, MSVC_64, MSVC_32 ] + config: [ MINGW_64-gcov, MSVC_64 ] name: windows (${{ matrix.config }}) steps: - uses: actions/checkout@v2 @@ -119,3 +117,69 @@ jobs: run: powershell ci\build.ps1 env: CONFIGURATION: ${{ matrix.config }} + + functionaltest: + name: ${{ matrix.runner }} ${{ matrix.flavor }} (cc=${{ matrix.cc }}) + strategy: + fail-fast: false + matrix: + include: + - flavor: functionaltest-lua + cc: gcc + runner: ubuntu-20.04 + os: linux + runs-on: ${{ matrix.runner }} + timeout-minutes: 45 + 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 + 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 minimum required version of cmake + env: + CMAKE_URL: 'https://cmake.org/files/v3.10/cmake-3.10.0-Linux-x86_64.sh' + CMAKE_VERSION: '3.10.0' + shell: bash + run: | + curl --retry 5 --silent --show-error --fail -o /tmp/cmake-installer.sh "$CMAKE_URL" + mkdir -p "$HOME/.local/bin" /opt/cmake-custom + chmod a+x /tmp/cmake-installer.sh + /tmp/cmake-installer.sh --prefix=/opt/cmake-custom --skip-license + ln -sfn /opt/cmake-custom/bin/cmake "$HOME/.local/bin/cmake" + cmake_version="$(cmake --version | head -1)" + echo "$cmake_version" | grep -qF "cmake version $CMAKE_VERSION" || { + echo "Unexpected CMake version: $cmake_version" + exit 1 + } + + - 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: ${{ matrix.runner }}-${{ 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 |