diff options
author | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2023-02-12 18:08:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-12 18:08:37 +0100 |
commit | 477d4bbf5f01e5c001a887ed6842e56b5341e976 (patch) | |
tree | e887e1de4121451c7d0a386708d4d832bb0da453 | |
parent | 47638706a37534ae9bc7ac4c57ddb9fb2b44fef0 (diff) | |
download | rneovim-477d4bbf5f01e5c001a887ed6842e56b5341e976.tar.gz rneovim-477d4bbf5f01e5c001a887ed6842e56b5341e976.tar.bz2 rneovim-477d4bbf5f01e5c001a887ed6842e56b5341e976.zip |
ci: inline external environment scripts (#22237)
Scripts that define the build itself shouldn't be external as they lead
to hard to find bugs.
-rw-r--r-- | .github/workflows/ci.yml | 51 | ||||
-rw-r--r-- | .github/workflows/codeql.yml | 3 | ||||
-rw-r--r-- | .github/workflows/env.ps1 | 7 | ||||
-rwxr-xr-x | .github/workflows/env.sh | 56 | ||||
-rw-r--r-- | .github/workflows/release.yml | 16 |
5 files changed, 43 insertions, 90 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b80220b2c0..f49b54216d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,16 @@ concurrency: cancel-in-progress: true env: - UNCRUSTIFY_VERSION: uncrustify-0.75.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 + 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 + TSAN_OPTIONS: log_path=${{ github.workspace }}/build/log/tsan + UBSAN_OPTIONS: "print_stacktrace=1 log_path=${{ github.workspace }}/build/log/ubsan" + VALGRIND_LOG: ${{ github.workspace }}/build/log/valgrind-%p.log # TEST_FILE: test/functional/core/startup_spec.lua # TEST_FILTER: foo @@ -25,12 +34,12 @@ jobs: if: (github.event_name == 'pull_request' && github.base_ref == 'master') || (github.event_name == 'push' && github.ref == 'refs/heads/master') runs-on: ubuntu-22.04 timeout-minutes: 10 + env: + CACHE_UNCRUSTIFY: ${{ github.workspace }}/.cache/uncrustify + UNCRUSTIFY_VERSION: uncrustify-0.75.0 steps: - uses: actions/checkout@v3 - - name: Setup common environment variables - run: ./.github/workflows/env.sh lint - - name: Install apt packages run: | ./.github/scripts/install_deps_ubuntu.sh @@ -58,7 +67,7 @@ jobs: build_dir=uncrustify/build cmake -S $source_dir -B $build_dir -G Ninja -D CMAKE_BUILD_TYPE=Release cmake --build $build_dir - mkdir -p $CACHE_DIR + mkdir -p .cache cp $build_dir/uncrustify ${{ env.CACHE_UNCRUSTIFY }} - uses: ./.github/actions/cache @@ -120,9 +129,6 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Setup common environment variables - run: ./.github/workflows/env.sh lintc - - name: Install apt packages run: | sudo add-apt-repository ppa:neovim-ppa/stable @@ -183,14 +189,15 @@ jobs: - flavor: asan cc: clang runner: ubuntu-22.04 - sanitizer_flags: -D CLANG_ASAN_UBSAN=ON + flags: -D CLANG_ASAN_UBSAN=ON - flavor: tsan cc: clang runner: ubuntu-22.04 - sanitizer_flags: -D CLANG_TSAN=ON + flags: -D CLANG_TSAN=ON - flavor: uchar cc: gcc runner: ubuntu-22.04 + flags: -D UNSIGNED_CHAR=ON - cc: clang runner: macos-12 @@ -201,6 +208,7 @@ jobs: cc: gcc runner: ubuntu-22.04 deps_flags: -D USE_BUNDLED_LUAJIT=OFF -D USE_BUNDLED_LUA=ON + flags: -D PREFER_LUA=ON runs-on: ${{ matrix.runner }} timeout-minutes: 45 env: @@ -210,8 +218,8 @@ jobs: - name: Set up environment run: | - ./.github/workflows/env.sh ${{ matrix.flavor }} ulimit -c unlimited + echo "$BIN_DIR" >> $GITHUB_PATH - name: Create log dir run: mkdir -p "$LOG_DIR" @@ -244,6 +252,8 @@ jobs: perl -W -e 'use Neovim::Ext; print $Neovim::Ext::VERSION' fi + - run: echo "DEPS_BUILD_DIR=$HOME/nvim-deps" >> $GITHUB_ENV + - uses: ./.github/actions/cache - name: Build third-party deps @@ -253,7 +263,7 @@ jobs: - name: Build run: | - cmake -B build -G Ninja $CMAKE_FLAGS ${{ matrix.sanitizer_flags }} + cmake -B build -G Ninja -D CI_BUILD=ON -D CMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -D MIN_LOG_LEVEL=3 ${{ matrix.flags }} cmake --build build - if: "!cancelled()" @@ -357,8 +367,8 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Setup common environment variables - run: ./.github/workflows/env.sh old_cmake + - name: Set up environment + run: echo "$BIN_DIR" >> $GITHUB_PATH - name: Install apt packages run: ./.github/scripts/install_deps_ubuntu.sh @@ -390,16 +400,21 @@ jobs: windows: runs-on: windows-2019 timeout-minutes: 45 - env: - DEPS_BUILD_DIR: ${{ github.workspace }}/nvim-deps - name: windows (MSVC_64) + name: windows steps: - uses: actions/checkout@v3 - uses: ./.github/actions/cache - name: Set env - run: ./.github/workflows/env.ps1 + run: | + $installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath + if ($installationPath -and (Test-Path "$installationPath\Common7\Tools\vsdevcmd.bat")) { + & "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x64 -no_logo && set" | ForEach-Object { + $name, $value = $_ -split '=', 2 + "$name=$value" >> $env:GITHUB_ENV + } + } - name: Build deps run: | diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index a11a87f93a..7cdaab4f11 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -22,9 +22,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Setup common environment variables - run: ./.github/workflows/env.sh - - name: Install apt packages run: ./.github/scripts/install_deps_ubuntu.sh diff --git a/.github/workflows/env.ps1 b/.github/workflows/env.ps1 deleted file mode 100644 index 8ac267f2f9..0000000000 --- a/.github/workflows/env.ps1 +++ /dev/null @@ -1,7 +0,0 @@ -$installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath -if ($installationPath -and (Test-Path "$installationPath\Common7\Tools\vsdevcmd.bat")) { - & "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x64 -no_logo && set" | ForEach-Object { - $name, $value = $_ -split '=', 2 - "$name=$value" >> $env:GITHUB_ENV - } -} diff --git a/.github/workflows/env.sh b/.github/workflows/env.sh deleted file mode 100755 index a93e9bdd97..0000000000 --- a/.github/workflows/env.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -set -e -u - -FLAVOR=${1:-} - -BUILD_DIR=$GITHUB_WORKSPACE/build -BIN_DIR=$GITHUB_WORKSPACE/bin -DEPS_BUILD_DIR=$HOME/nvim-deps -INSTALL_PREFIX=$GITHUB_WORKSPACE/nvim-install -LOG_DIR=$BUILD_DIR/log -NVIM_LOG_FILE=$BUILD_DIR/.nvimlog -VALGRIND_LOG=$LOG_DIR/valgrind-%p.log -CACHE_DIR=$GITHUB_WORKSPACE/.cache -CACHE_UNCRUSTIFY=$CACHE_DIR/uncrustify -CMAKE_FLAGS="-D CI_BUILD=ON -D CMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX -D MIN_LOG_LEVEL=3" -ASAN_OPTIONS= -UBSAN_OPTIONS= -TSAN_OPTIONS= - -case "$FLAVOR" in - asan) - ASAN_OPTIONS="detect_leaks=1:check_initialization_order=1:handle_abort=1:handle_sigill=1:log_path=$LOG_DIR/asan:intercept_tls_get_addr=0" - UBSAN_OPTIONS="print_stacktrace=1 log_path=$LOG_DIR/ubsan" - ;; - tsan) - TSAN_OPTIONS=log_path=$LOG_DIR/tsan - ;; - uchar) - CMAKE_FLAGS+=" -D UNSIGNED_CHAR=ON" - ;; - functionaltest-lua) - CMAKE_FLAGS+=" -D PREFER_LUA=ON" - ;; - *) - ;; -esac - -cat <<EOF >> "$GITHUB_ENV" -CMAKE_FLAGS=$CMAKE_FLAGS -BUILD_DIR=$BUILD_DIR -BIN_DIR=$BIN_DIR -DEPS_BUILD_DIR=$DEPS_BUILD_DIR -INSTALL_PREFIX=$INSTALL_PREFIX -LOG_DIR=$LOG_DIR -NVIM_LOG_FILE=$NVIM_LOG_FILE -VALGRIND_LOG=$VALGRIND_LOG -CACHE_DIR=$CACHE_DIR -CACHE_UNCRUSTIFY=$CACHE_UNCRUSTIFY -ASAN_OPTIONS=$ASAN_OPTIONS -UBSAN_OPTIONS=$UBSAN_OPTIONS -TSAN_OPTIONS=$TSAN_OPTIONS -EOF - -cat <<EOF >> "$GITHUB_PATH" -$BIN_DIR -EOF diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 838caf3fca..a05038f32a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -111,20 +111,24 @@ jobs: windows: runs-on: windows-2019 - env: - DEPS_BUILD_DIR: ${{ github.workspace }}/nvim-deps - CMAKE_BUILD_TYPE: "RelWithDebInfo" name: windows (MSVC_64) steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set env - run: ./.github/workflows/env.ps1 + run: | + $installationPath = vswhere.exe -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath + if ($installationPath -and (Test-Path "$installationPath\Common7\Tools\vsdevcmd.bat")) { + & "${env:COMSPEC}" /s /c "`"$installationPath\Common7\Tools\vsdevcmd.bat`" -arch=x64 -no_logo && set" | ForEach-Object { + $name, $value = $_ -split '=', 2 + "$name=$value" >> $env:GITHUB_ENV + } + } - name: Build deps run: | - cmake -S cmake.deps -B $env:DEPS_BUILD_DIR -G Ninja -DCMAKE_BUILD_TYPE='RelWithDebInfo' - cmake --build $env:DEPS_BUILD_DIR + cmake -S cmake.deps -B .deps -G Ninja -DCMAKE_BUILD_TYPE='RelWithDebInfo' + cmake --build .deps - name: build package run: | cmake -B build -G Ninja -DCMAKE_BUILD_TYPE='RelWithDebInfo' |