aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml78
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