[pull] master from neovim:master #3673
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build | |
on: | |
pull_request: | |
branches: | |
- 'master' | |
- 'release-[0-9]+.[0-9]+' | |
paths: | |
- '**.cmake' | |
- '**/CMakeLists.txt' | |
- '**/CMakePresets.json' | |
- 'cmake.*/**' | |
- '.github/**' | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
env: | |
BIN_DIR: ${{ github.workspace }}/bin | |
INSTALL_PREFIX: ${{ github.workspace }}/nvim-install | |
jobs: | |
wasmtime: | |
strategy: | |
fail-fast: false | |
matrix: | |
test: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.test }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup | |
- run: | | |
cmake -S cmake.deps --preset ci -D ENABLE_WASMTIME=ON | |
cmake --build .deps | |
cmake --preset ci -D ENABLE_WASMTIME=ON | |
cmake --build build | |
old-cmake: | |
name: Test oldest supported cmake | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
env: | |
CMAKE_URL: 'https://cmake.org/files/v3.16/cmake-3.16.0-Linux-x86_64.sh' | |
CMAKE_VERSION: '3.16.0' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup | |
- name: Install minimum required version of cmake | |
run: | | |
curl --retry 5 --silent --show-error --fail -o /tmp/cmake-installer.sh "$CMAKE_URL" | |
mkdir -p "$BIN_DIR" /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 "$BIN_DIR/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: Build dependencies | |
run: make deps | |
- name: Build | |
run: make CMAKE_FLAGS="-D CI_BUILD=ON -D CMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX" | |
- name: Install | |
run: make install | |
use-existing-src: | |
name: Test USE_EXISTING_SRC_DIR=ON builds with no network access | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup | |
- name: Build bundled dependencies | |
run: make deps | |
- name: Clean bundled dependencies à la neovim/deps | |
run: | | |
rm -rf ./build | |
find .deps .deps/build -maxdepth 1 '!' \( -name .deps -o -name build -o -name src \) -exec rm -r '{}' + | |
cd .deps/build/src | |
rm -rf ./*-build | |
rm -rf ./*-stamp/*-{configure,build,install,done} | |
for d in *; do (cd "$d"; rm -rf ./autom4te.cache; make clean || true; make distclean || true); done | |
- name: Re-build bundled dependencies with no network access | |
run: unshare --map-root-user --net make deps DEPS_CMAKE_FLAGS=-DUSE_EXISTING_SRC_DIR=ON | |
- name: Build | |
run: make CMAKE_FLAGS="-D CI_BUILD=ON" |