mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #22577 from dundargoc/ci/external-deps
ci: test build with external dependencies on every pull request
This commit is contained in:
commit
d8ef6770bd
2
.github/actions/cache/action.yml
vendored
2
.github/actions/cache/action.yml
vendored
@ -16,7 +16,7 @@ runs:
|
|||||||
# files to search through.
|
# files to search through.
|
||||||
- uses: actions/cache@v3
|
- uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
path: ${{ env.DEPS_BUILD_DIR }}
|
path: .deps
|
||||||
key: ${{ env.CACHE_KEY }}-${{ hashFiles('cmake**', 'ci/**',
|
key: ${{ env.CACHE_KEY }}-${{ hashFiles('cmake**', 'ci/**',
|
||||||
'.github/workflows/test.yml', 'CMakeLists.txt',
|
'.github/workflows/test.yml', 'CMakeLists.txt',
|
||||||
'runtime/CMakeLists.txt', 'src/nvim/**/CMakeLists.txt') }}
|
'runtime/CMakeLists.txt', 'src/nvim/**/CMakeLists.txt') }}
|
||||||
|
43
.github/workflows/build.yml
vendored
43
.github/workflows/build.yml
vendored
@ -71,46 +71,3 @@ jobs:
|
|||||||
|
|
||||||
- name: Install
|
- name: Install
|
||||||
run: make 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
|
|
||||||
|
60
.github/workflows/test.yml
vendored
60
.github/workflows/test.yml
vendored
@ -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
|
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
|
BIN_DIR: ${{ github.workspace }}/bin
|
||||||
BUILD_DIR: ${{ github.workspace }}/build
|
BUILD_DIR: ${{ github.workspace }}/build
|
||||||
DEPS_BUILD_DIR: ${{ github.workspace }}/nvim-deps
|
|
||||||
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
|
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install
|
||||||
LOG_DIR: ${{ github.workspace }}/build/log
|
LOG_DIR: ${{ github.workspace }}/build/log
|
||||||
NVIM_LOG_FILE: ${{ github.workspace }}/build/.nvimlog
|
NVIM_LOG_FILE: ${{ github.workspace }}/build/.nvimlog
|
||||||
@ -72,8 +71,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Build third-party deps
|
- name: Build third-party deps
|
||||||
run: |
|
run: |
|
||||||
cmake -S cmake.deps -B $DEPS_BUILD_DIR -G Ninja
|
cmake -S cmake.deps -B .deps -G Ninja
|
||||||
cmake --build $DEPS_BUILD_DIR
|
cmake --build .deps
|
||||||
|
|
||||||
- if: success() || failure() && steps.abort_job.outputs.status == 'success'
|
- if: success() || failure() && steps.abort_job.outputs.status == 'success'
|
||||||
name: configure
|
name: configure
|
||||||
@ -193,8 +192,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Build third-party deps
|
- name: Build third-party deps
|
||||||
run: |
|
run: |
|
||||||
cmake -S cmake.deps -B $DEPS_BUILD_DIR -G Ninja ${{ matrix.deps_flags }}
|
cmake -S cmake.deps -B .deps -G Ninja ${{ matrix.deps_flags }}
|
||||||
cmake --build $DEPS_BUILD_DIR
|
cmake --build .deps
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
@ -273,8 +272,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Build third-party deps
|
- name: Build third-party deps
|
||||||
run: |
|
run: |
|
||||||
cmake -S cmake.deps -B $DEPS_BUILD_DIR -G "Ninja Multi-Config"
|
cmake -S cmake.deps -B .deps -G "Ninja Multi-Config"
|
||||||
cmake --build $DEPS_BUILD_DIR
|
cmake --build .deps
|
||||||
|
|
||||||
- name: Configure
|
- name: Configure
|
||||||
run: cmake -B build -G "Ninja Multi-Config" -D CMAKE_C_COMPILER=gcc
|
run: cmake -B build -G "Ninja Multi-Config" -D CMAKE_C_COMPILER=gcc
|
||||||
@ -309,8 +308,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Build deps
|
- name: Build deps
|
||||||
run: |
|
run: |
|
||||||
cmake -S cmake.deps -B $env:DEPS_BUILD_DIR -G Ninja -D CMAKE_BUILD_TYPE='RelWithDebInfo'
|
cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE='RelWithDebInfo'
|
||||||
cmake --build $env:DEPS_BUILD_DIR
|
cmake --build .deps
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
@ -360,3 +359,46 @@ jobs:
|
|||||||
$env:PATH = "C:\msys64\usr\bin;$env:PATH"
|
$env:PATH = "C:\msys64\usr\bin;$env:PATH"
|
||||||
& "C:\msys64\mingw64\bin\mingw32-make.exe" -C $(Convert-Path test\old\testdir) VERBOSE=1
|
& "C:\msys64\mingw64\bin\mingw32-make.exe" -C $(Convert-Path test\old\testdir) VERBOSE=1
|
||||||
$env:PATH = $OldPath
|
$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
|
||||||
|
Loading…
Reference in New Issue
Block a user