HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //home/ubuntu/neovim/.github/workflows/build.yml
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.13/cmake-3.13.0-Linux-x86_64.sh'
      CMAKE_VERSION: '3.13.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"