Merge pull request #22577 from dundargoc/ci/external-deps

ci: test build with external dependencies on every pull request
This commit is contained in:
dundargoc 2023-03-11 09:39:20 +01:00 committed by GitHub
commit d8ef6770bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 52 additions and 53 deletions

View File

@ -16,7 +16,7 @@ runs:
# files to search through.
- uses: actions/cache@v3
with:
path: ${{ env.DEPS_BUILD_DIR }}
path: .deps
key: ${{ env.CACHE_KEY }}-${{ hashFiles('cmake**', 'ci/**',
'.github/workflows/test.yml', 'CMakeLists.txt',
'runtime/CMakeLists.txt', 'src/nvim/**/CMakeLists.txt') }}

View File

@ -71,46 +71,3 @@ jobs:
- name: Install
run: make install
with-external-deps:
runs-on: ubuntu-22.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo add-apt-repository ppa:neovim-ppa/stable
./.github/scripts/install_deps.sh
sudo apt-get install -y \
libluajit-5.1-dev \
libmsgpack-dev \
libtermkey-dev \
libtree-sitter-dev \
libunibilium-dev \
libuv1-dev \
lua-busted \
lua-filesystem \
lua-inspect \
lua-lpeg \
lua-nvim \
luajit
# libvterm-dev \
# lua-luv-dev
# Remove comments from packages once we start using these external
# dependencies.
- name: Build third-party deps
run: |
# Ideally all dependencies should external for this job, but some
# dependencies don't have the required version available. We use the
# bundled versions for these with the hopes of being able to remove them
# later on.
cmake -S cmake.deps -B .deps -G Ninja -D USE_BUNDLED=OFF -D USE_BUNDLED_LUV=ON -D USE_BUNDLED_LIBVTERM=ON
cmake --build .deps
- name: Build
run: |
cmake -B build -G Ninja
cmake --build build

View File

@ -19,7 +19,6 @@ env:
ASAN_OPTIONS: detect_leaks=1:check_initialization_order=1:handle_abort=1:handle_sigill=1:log_path=${{ github.workspace }}/build/log/asan:intercept_tls_get_addr=0
BIN_DIR: ${{ github.workspace }}/bin
BUILD_DIR: ${{ github.workspace }}/build
DEPS_BUILD_DIR: ${{ github.workspace }}/nvim-deps
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
LOG_DIR: ${{ github.workspace }}/build/log
NVIM_LOG_FILE: ${{ github.workspace }}/build/.nvimlog
@ -72,8 +71,8 @@ jobs:
- name: Build third-party deps
run: |
cmake -S cmake.deps -B $DEPS_BUILD_DIR -G Ninja
cmake --build $DEPS_BUILD_DIR
cmake -S cmake.deps -B .deps -G Ninja
cmake --build .deps
- if: success() || failure() && steps.abort_job.outputs.status == 'success'
name: configure
@ -193,8 +192,8 @@ jobs:
- name: Build third-party deps
run: |
cmake -S cmake.deps -B $DEPS_BUILD_DIR -G Ninja ${{ matrix.deps_flags }}
cmake --build $DEPS_BUILD_DIR
cmake -S cmake.deps -B .deps -G Ninja ${{ matrix.deps_flags }}
cmake --build .deps
- name: Build
run: |
@ -273,8 +272,8 @@ jobs:
- name: Build third-party deps
run: |
cmake -S cmake.deps -B $DEPS_BUILD_DIR -G "Ninja Multi-Config"
cmake --build $DEPS_BUILD_DIR
cmake -S cmake.deps -B .deps -G "Ninja Multi-Config"
cmake --build .deps
- name: Configure
run: cmake -B build -G "Ninja Multi-Config" -D CMAKE_C_COMPILER=gcc
@ -309,8 +308,8 @@ jobs:
- name: Build deps
run: |
cmake -S cmake.deps -B $env:DEPS_BUILD_DIR -G Ninja -D CMAKE_BUILD_TYPE='RelWithDebInfo'
cmake --build $env:DEPS_BUILD_DIR
cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE='RelWithDebInfo'
cmake --build .deps
- name: Build
run: |
@ -360,3 +359,46 @@ jobs:
$env:PATH = "C:\msys64\usr\bin;$env:PATH"
& "C:\msys64\mingw64\bin\mingw32-make.exe" -C $(Convert-Path test\old\testdir) VERBOSE=1
$env:PATH = $OldPath
with-external-deps:
runs-on: ubuntu-22.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: |
sudo add-apt-repository ppa:neovim-ppa/stable
./.github/scripts/install_deps.sh
sudo apt-get install -y \
libluajit-5.1-dev \
libmsgpack-dev \
libtermkey-dev \
libtree-sitter-dev \
libunibilium-dev \
libuv1-dev \
lua-filesystem \
lua-lpeg \
lua-mpack \
luajit
# libvterm-dev \
# lua-luv-dev
# Remove comments from packages once we start using these external
# dependencies.
- uses: ./.github/actions/cache
- name: Build third-party deps
run: |
# Ideally all dependencies should external for this job, but some
# dependencies don't have the required version available. We use the
# bundled versions for these with the hopes of being able to remove them
# later on.
cmake -S cmake.deps -B .deps -G Ninja -D USE_BUNDLED=OFF -D USE_BUNDLED_LUV=ON -D USE_BUNDLED_LIBVTERM=ON
cmake --build .deps
- name: Build
run: |
cmake -B build -G Ninja
cmake --build build