From bf24298feaeab9dd5fea197b4b4422fee31ac33c Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sun, 10 Mar 2024 13:49:00 +0100 Subject: ci: simplify concurrency string `github.ref` is now defined for both pull requests and pushes, meaning that it can be used to simplify the concurrency group. `cancel-in-progress` is set to true only if the trigger is a pull request, as we don't want master runs to cancel each other out. --- .github/workflows/build.yml | 4 ++-- .github/workflows/codeql.yml | 4 ++-- .github/workflows/optional.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 13fa692be1..bf8356243e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,8 +12,8 @@ on: - '.github/**' concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} env: BIN_DIR: ${{ github.workspace }}/bin diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index c2db78dd25..135e5321e5 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,8 +1,8 @@ name: "codeql" concurrency: - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} on: push: diff --git a/.github/workflows/optional.yml b/.github/workflows/optional.yml index c9a8205f87..84d71821c5 100644 --- a/.github/workflows/optional.yml +++ b/.github/workflows/optional.yml @@ -5,8 +5,8 @@ on: workflow_dispatch: concurrency: - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} env: INSTALL_PREFIX: ${{ github.workspace }}/nvim-install diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6bd40b8561..cf1ea48506 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,8 +12,8 @@ on: - 'contrib/**' concurrency: - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} env: ASAN_OPTIONS: detect_leaks=1:check_initialization_order=1:log_path=${{ github.workspace }}/build/log/asan:intercept_tls_get_addr=0 -- cgit From d3e51603bc94fac68cd2c92ae7ebc90baa8471fe Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sun, 3 Mar 2024 12:01:37 +0100 Subject: ci(windows): optionally test windows with ASAN Add the label `ci:windows-asan` to enable it. --- .github/workflows/optional.yml | 7 ++++ .github/workflows/test.yml | 60 +------------------------------- .github/workflows/test_windows.yml | 71 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/test_windows.yml (limited to '.github/workflows') diff --git a/.github/workflows/optional.yml b/.github/workflows/optional.yml index 84d71821c5..742d51377f 100644 --- a/.github/workflows/optional.yml +++ b/.github/workflows/optional.yml @@ -46,3 +46,10 @@ jobs: runuser -u qemuci -- cmake -B build -G Ninja -D CI_BUILD=ON -D PREFER_LUA=ON && runuser -u qemuci -- make ${{ matrix.test }} " + + windows-asan: + if: contains(github.event.pull_request.labels.*.name, 'ci:windows-asan') || github.event_name == 'workflow_dispatch' + uses: ./.github/workflows/test_windows.yml + with: + build_flags: "-D ENABLE_ASAN_UBSAN=ON" + functionaltest_timeout: 40 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cf1ea48506..d383d96de2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -193,65 +193,7 @@ jobs: run: cat $(find "$LOG_DIR" -type f) windows: - runs-on: windows-2022 - timeout-minutes: 45 - strategy: - fail-fast: false - matrix: - test: [functional, old] - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/setup - - - name: Build deps - run: | - cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE='RelWithDebInfo' - cmake --build .deps - - - name: Build - run: | - cmake --preset ci -D CMAKE_BUILD_TYPE='RelWithDebInfo' - cmake --build build - - - name: Install test deps - run: | - $PSNativeCommandArgumentPassing = 'Legacy' - - & build\bin\nvim.exe "--version" - - # Ensure that the "win32" feature is set. - & build\bin\nvim -u NONE --headless -c 'exe !has(\"win32\").\"cq\"' - - python -m pip install pynvim - # Sanity check - python -c "import pynvim; print(str(pynvim))" - - node --version - npm.cmd --version - - npm.cmd install -g neovim - Get-Command -CommandType Application neovim-node-host.cmd - npm.cmd link neovim - - - if: ${{ matrix.test == 'functional' }} - name: functionaltest - timeout-minutes: 20 - run: cmake --build build --target functionaltest - - - if: ${{ matrix.test == 'old' }} - uses: msys2/setup-msys2@v2 - with: - update: true - pacboy: >- - make:p gcc:p diffutils:p - release: false - - - if: ${{ matrix.test == 'old' }} - name: oldtest - shell: msys2 {0} - run: | - cd test/old/testdir - mingw32-make VERBOSE=1 + uses: ./.github/workflows/test_windows.yml # This job tests the following things: # - Check if Release, MinSizeRel and RelWithDebInfo compiles correctly. diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml new file mode 100644 index 0000000000..fec2275cbd --- /dev/null +++ b/.github/workflows/test_windows.yml @@ -0,0 +1,71 @@ +name: windows +on: + workflow_call: + inputs: + build_flags: + type: string + functionaltest_timeout: + default: 20 + type: number + +jobs: + windows: + runs-on: windows-2022 + timeout-minutes: 45 + strategy: + fail-fast: false + matrix: + test: [functional, old] + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/setup + + - name: Build deps + run: | + cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE='RelWithDebInfo' + cmake --build .deps + + - name: Build + run: | + cmake --preset ci -D CMAKE_BUILD_TYPE='RelWithDebInfo' ${{ inputs.build_flags }} + cmake --build build + + - name: Install test deps + run: | + $PSNativeCommandArgumentPassing = 'Legacy' + + & build\bin\nvim.exe "--version" + + # Ensure that the "win32" feature is set. + & build\bin\nvim -u NONE --headless -c 'exe !has(\"win32\").\"cq\"' + + python -m pip install pynvim + # Sanity check + python -c "import pynvim; print(str(pynvim))" + + node --version + npm.cmd --version + + npm.cmd install -g neovim + Get-Command -CommandType Application neovim-node-host.cmd + npm.cmd link neovim + + - if: ${{ matrix.test == 'functional' }} + name: functionaltest + timeout-minutes: ${{ inputs.functionaltest_timeout }} + run: cmake --build build --target functionaltest + + - if: ${{ matrix.test == 'old' }} + uses: msys2/setup-msys2@v2 + with: + update: true + pacboy: >- + make:p gcc:p diffutils:p + release: false + + - if: ${{ matrix.test == 'old' }} + name: oldtest + shell: msys2 {0} + run: | + cd test/old/testdir + mingw32-make VERBOSE=1 -- cgit From 036f86feaccb25d8552c4bf4d216f7f2a9205325 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 23 Mar 2024 21:28:46 +0100 Subject: ci: provide separate macos releases for intel and arm This will immensely reduce the complexity required to support both architectures, reduce overall lines of code and unblock follow-up simplifications. --- .github/workflows/build.yml | 11 -------- .github/workflows/notes.md | 20 ++++++++++----- .github/workflows/release.yml | 60 +++++++++++++++++++++++++++++++++---------- 3 files changed, 60 insertions(+), 31 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bf8356243e..c30748bb78 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,17 +20,6 @@ env: INSTALL_PREFIX: ${{ github.workspace }}/nvim-install jobs: - macos-universal: - runs-on: macos-14 - timeout-minutes: 20 - steps: - - uses: actions/checkout@v4 - - uses: ./.github/actions/setup - - run: printf 'CMAKE_BUILD_TYPE=Release\n' >> $GITHUB_ENV - - - name: Build universal binary - run: ./.github/scripts/build_universal_macos.sh - old-cmake: name: Test oldest supported cmake runs-on: ubuntu-22.04 diff --git a/.github/workflows/notes.md b/.github/workflows/notes.md index 294d92ebb5..ba7e55a9c1 100644 --- a/.github/workflows/notes.md +++ b/.github/workflows/notes.md @@ -18,12 +18,19 @@ ${NVIM_VERSION} 2. Run the MSI 3. Run `nvim.exe` on your CLI of choice -### macOS +### macOS (x86_64) -1. Download **nvim-macos.tar.gz** -2. Run `xattr -c ./nvim-macos.tar.gz` (to avoid "unknown developer" warning) -3. Extract: `tar xzvf nvim-macos.tar.gz` -4. Run `./nvim-macos/bin/nvim` +1. Download **nvim-macos-x86_86.tar.gz** +2. Run `xattr -c ./nvim-macos-x86_86.tar.gz` (to avoid "unknown developer" warning) +3. Extract: `tar xzvf nvim-macos-x86_86.tar.gz` +4. Run `./nvim-macos-x86_86/bin/nvim` + +### macOS (arm64) + +1. Download **nvim-macos-arm64.tar.gz** +2. Run `xattr -c ./nvim-macos-arm64.tar.gz` (to avoid "unknown developer" warning) +3. Extract: `tar xzvf nvim-macos-arm64.tar.gz` +4. Run `./nvim-macos-arm64/bin/nvim` ### Linux (x64) @@ -56,7 +63,8 @@ https://github.com/neovim/neovim-releases. ${SHA_LINUX_64_TAR} ${SHA_APP_IMAGE} ${SHA_APP_IMAGE_ZSYNC} -${SHA_MACOS} +${SHA_MACOS_X86_64} +${SHA_MACOS_ARM64} ${SHA_WIN_64_ZIP} ${SHA_WIN_64_MSI} ``` diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48a3901955..e0989120f3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,8 +59,19 @@ jobs: ./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT printf 'END\n' >> $GITHUB_OUTPUT - macOS: - runs-on: macos-14 + macos: + strategy: + fail-fast: false + matrix: + runner: [ macos-12, macos-14 ] + include: + - runner: macos-12 + arch: x86_64 + - runner: macos-14 + arch: arm64 + runs-on: ${{ matrix.runner }} + env: + MACOSX_DEPLOYMENT_TARGET: 11.0 steps: - uses: actions/checkout@v4 with: @@ -72,17 +83,33 @@ jobs: run: printf 'CMAKE_BUILD_TYPE=Release\n' >> $GITHUB_ENV - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') run: printf 'CMAKE_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV - - name: Build universal binary - run: ./.github/scripts/build_universal_macos.sh + + - name: Build deps + run: | + cmake -S cmake.deps -B .deps -G Ninja \ + -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + -D CMAKE_FIND_FRAMEWORK=NEVER + cmake --build .deps + + - name: Build neovim + run: | + cmake -B build -G Ninja \ + -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + -D ENABLE_LIBINTL=OFF \ + -D CMAKE_FIND_FRAMEWORK=NEVER + cmake --build build + + - name: Package + run: cpack --config build/CPackConfig.cmake + - uses: actions/upload-artifact@v4 with: - name: nvim-macos - path: build/nvim-macos.tar.gz + name: nvim-macos-${{ matrix.arch }} + path: build/nvim-macos-${{ matrix.arch }}.tar.gz retention-days: 1 windows: runs-on: windows-2019 - name: windows (MSVC_64) steps: - uses: actions/checkout@v4 with: @@ -106,7 +133,7 @@ jobs: retention-days: 1 publish: - needs: [linux, macOS, windows] + needs: [linux, macos, windows] runs-on: ubuntu-latest env: GH_REPO: ${{ github.repository }} @@ -160,11 +187,16 @@ jobs: cd ./appimage sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV - - name: Generate macOS SHA256 checksums + - name: Generate macos x86_64 SHA256 checksums + run: | + cd ./nvim-macos-x86_64 + sha256sum nvim-macos-x86_64.tar.gz > nvim-macos-x86_64.tar.gz.sha256sum + echo "SHA_MACOS_X86_64=$(cat nvim-macos-x86_64.tar.gz.sha256sum)" >> $GITHUB_ENV + - name: Generate macos arm64 SHA256 checksums run: | - cd ./nvim-macos - sha256sum nvim-macos.tar.gz > nvim-macos.tar.gz.sha256sum - echo "SHA_MACOS=$(cat nvim-macos.tar.gz.sha256sum)" >> $GITHUB_ENV + cd ./nvim-macos-arm64 + sha256sum nvim-macos-arm64.tar.gz > nvim-macos-arm64.tar.gz.sha256sum + echo "SHA_MACOS_ARM64=$(cat nvim-macos-arm64.tar.gz.sha256sum)" >> $GITHUB_ENV - name: Generate Win64 SHA256 checksums run: | cd ./nvim-win64 @@ -179,6 +211,6 @@ jobs: run: | envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md" if [ "$TAG_NAME" != "nightly" ]; then - gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos/* nvim-linux64/* appimage/* nvim-win64/* + gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/* fi - gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos/* nvim-linux64/* appimage/* nvim-win64/* + gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/* -- cgit From 2bcf88d35462325d1b90b0dacb373685f2d708a5 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 23 Mar 2024 21:28:46 +0100 Subject: ci: use the same logic to determine build type for all releases --- .github/workflows/release.yml | 49 ++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e0989120f3..6abdd588ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,8 +15,32 @@ on: # Build on the oldest supported images, so we have broader compatibility # Build with gcc-10 to prevent triggering #14150 (default is still gcc-9 on 20.04) jobs: + setup: + runs-on: ubuntu-latest + outputs: + build_type: ${{ steps.build.outputs.build_type }} + appimage_tag: ${{ steps.build.outputs.appimage_tag }} + steps: + # Nightly uses RelWithDebInfo while stable uses Release (which disables + # asserts). This helps get better debug info from people brave enough to + # use the nightly builds. + - if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly') + run: | + echo 'CMAKE_BUILD_TYPE=Release' >> $GITHUB_ENV + echo 'APPIMAGE_TAG=latest' >> $GITHUB_ENV + - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') + run: | + echo 'CMAKE_BUILD_TYPE=RelWithDebInfo' >> $GITHUB_ENV + echo 'APPIMAGE_TAG=nightly' >> $GITHUB_ENV + - name: Export build information + id: build + run: | + printf "build_type=${CMAKE_BUILD_TYPE}\n" >> $GITHUB_OUTPUT + printf "appimage_tag=${APPIMAGE_TAG}\n" >> $GITHUB_OUTPUT + linux: runs-on: ubuntu-20.04 + needs: setup env: CC: gcc-10 outputs: @@ -27,16 +51,9 @@ jobs: # Perform a full checkout #13471 fetch-depth: 0 - run: ./.github/scripts/install_deps.sh - - if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly') - run: | - echo 'CMAKE_BUILD_TYPE=Release' >> $GITHUB_ENV - echo 'APPIMAGE_TAG=latest' >> $GITHUB_ENV - - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') - run: | - echo 'CMAKE_BUILD_TYPE=RelWithDebInfo' >> $GITHUB_ENV - echo 'APPIMAGE_TAG=nightly' >> $GITHUB_ENV + - run: echo "CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}" >> $GITHUB_ENV - name: appimage - run: ./scripts/genappimage.sh ${APPIMAGE_TAG} + run: ./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }} - name: tar.gz run: cpack --config build/CPackConfig.cmake -G TGZ - uses: actions/upload-artifact@v4 @@ -60,6 +77,7 @@ jobs: printf 'END\n' >> $GITHUB_OUTPUT macos: + needs: setup strategy: fail-fast: false matrix: @@ -79,22 +97,18 @@ jobs: fetch-depth: 0 - name: Install dependencies run: ./.github/scripts/install_deps.sh - - if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name != 'nightly') - run: printf 'CMAKE_BUILD_TYPE=Release\n' >> $GITHUB_ENV - - if: github.event_name == 'schedule' || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag_name == 'nightly') - run: printf 'CMAKE_BUILD_TYPE=RelWithDebInfo\n' >> $GITHUB_ENV - name: Build deps run: | cmake -S cmake.deps -B .deps -G Ninja \ - -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + -D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \ -D CMAKE_FIND_FRAMEWORK=NEVER cmake --build .deps - name: Build neovim run: | cmake -B build -G Ninja \ - -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + -D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \ -D ENABLE_LIBINTL=OFF \ -D CMAKE_FIND_FRAMEWORK=NEVER cmake --build build @@ -109,6 +123,7 @@ jobs: retention-days: 1 windows: + needs: setup runs-on: windows-2019 steps: - uses: actions/checkout@v4 @@ -118,11 +133,11 @@ jobs: - run: .github/scripts/env.ps1 - name: Build deps run: | - cmake -S cmake.deps -B .deps -G Ninja -DCMAKE_BUILD_TYPE='RelWithDebInfo' + cmake -S cmake.deps -B .deps -G Ninja -DCMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} cmake --build .deps - name: build package run: | - cmake -B build -G Ninja -DCMAKE_BUILD_TYPE='RelWithDebInfo' + cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} cmake --build build --target package - uses: actions/upload-artifact@v4 with: -- cgit From 1bfe6fdceb9d50944a963c843cbeb6dd0a399bfe Mon Sep 17 00:00:00 2001 From: dundargoc Date: Wed, 27 Mar 2024 14:14:25 +0100 Subject: ci: add workflow_dispatch event to testing workflows This allows us to easily test the release branch if needed. --- .github/workflows/build.yml | 1 + .github/workflows/codeql.yml | 2 ++ .github/workflows/test.yml | 1 + .github/workflows/test_windows.yml | 1 + 4 files changed, 5 insertions(+) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c30748bb78..81e8ceefd7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,6 +10,7 @@ on: - '**/CMakePresets.json' - 'cmake.*/**' - '.github/**' + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 135e5321e5..9c85d606da 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -10,6 +10,8 @@ on: pull_request: # The branches below must be a subset of the branches above branches: [ "master" ] + workflow_dispatch: + jobs: analyze: name: Analyze diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d383d96de2..622304512e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,6 +10,7 @@ on: - 'release-[0-9]+.[0-9]+' paths-ignore: - 'contrib/**' + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index fec2275cbd..d92993a08c 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -7,6 +7,7 @@ on: functionaltest_timeout: default: 20 type: number + workflow_dispatch: jobs: windows: -- cgit From a89ce89742db600665b69e58d5e1bc3dbee9d57b Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Thu, 28 Mar 2024 02:32:32 +0100 Subject: docs: fix typos (#27868) Co-authored-by: ite-usagi <77563904+ite-usagi@users.noreply.github.com> Co-authored-by: v-sim <56476039+v-sim@users.noreply.github.com> Co-authored-by: Evgeni Chasnovski Co-authored-by: zeertzjq Co-authored-by: Quico Augustijn Co-authored-by: nhld Co-authored-by: francisco souza <108725+fsouza@users.noreply.github.com> --- .github/workflows/notes.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/notes.md b/.github/workflows/notes.md index ba7e55a9c1..f67a098687 100644 --- a/.github/workflows/notes.md +++ b/.github/workflows/notes.md @@ -20,10 +20,10 @@ ${NVIM_VERSION} ### macOS (x86_64) -1. Download **nvim-macos-x86_86.tar.gz** -2. Run `xattr -c ./nvim-macos-x86_86.tar.gz` (to avoid "unknown developer" warning) -3. Extract: `tar xzvf nvim-macos-x86_86.tar.gz` -4. Run `./nvim-macos-x86_86/bin/nvim` +1. Download **nvim-macos-x86_64.tar.gz** +2. Run `xattr -c ./nvim-macos-x86_64.tar.gz` (to avoid "unknown developer" warning) +3. Extract: `tar xzvf nvim-macos-x86_64.tar.gz` +4. Run `./nvim-macos-x86_64/bin/nvim` ### macOS (arm64) -- cgit From 36acb2a8ec905069e382bb3b6db6b6ac677bce39 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Fri, 29 Mar 2024 13:20:43 +0100 Subject: ci: use `--break-system-packages` on mac when installing pynvim Python 3.12+ throws an error if you try to install a package in an externally managed environment. Using `--break-system-packages` is not recommended for personal use, but for CI it should be fine and is probably the most straightforward solution. --- .github/workflows/test.yml | 4 ---- 1 file changed, 4 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 622304512e..d7af975748 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -134,10 +134,6 @@ jobs: - if: ${{ matrix.test != 'unittest' }} name: Set up interpreter packages run: | - # Use default CC to avoid compilation problems when installing Python modules. - echo "Install neovim module for Python." - CC=cc python3 -m pip -q install --user --upgrade pynvim - echo "Install neovim RubyGem." gem install --no-document --bindir "$BIN_DIR" --user-install --pre neovim -- cgit From c34c31af734577255b6fb8a84b5f1ce9ff03cd6a Mon Sep 17 00:00:00 2001 From: Joey Gouly Date: Sun, 14 Apr 2024 14:27:04 +0100 Subject: ci: enable unittests on macos-14 Add more filters so that LuaJIT can parse headers on macOS 14. The system headers use a style of enum introduced in C++11 (and allowed as an extension in C by clang) of the form: enum Name : Type { The system headers also use bitfields in the mach_vm_range_recipe* types: struct Foo { int bar : 32; } Neither of these constructs can be parsed by LuaJIT, so filter the lines out. Neither of these declarations are used by neovim's unittests. There is a (now closed) issue about bitfields for LuaJIT: https://github.com/LuaJIT/LuaJIT/issues/951 Fixes #26145. --- .github/workflows/test.yml | 2 -- 1 file changed, 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d7af975748..d0ee18ab73 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -114,8 +114,6 @@ jobs: build: { flavor: tsan } - test: unittest build: { flavor: puc-lua } - - test: unittest - build: { runner: macos-14 } # unittests don't work on M1 #26145 - test: oldtest build: { flavor: tsan } runs-on: ${{ matrix.build.runner }} -- cgit From 947335be915fc83e16f83befa22a6ad8eb84ab6f Mon Sep 17 00:00:00 2001 From: dundargoc Date: Wed, 1 May 2024 17:18:44 +0200 Subject: ci: update vim_patches.yml to follow conventional commits This will change the commits messages from ``` version.c: update [skip ci] ``` to ``` docs: update version.c [skip ci] ``` --- .github/workflows/vim_patches.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/vim_patches.yml b/.github/workflows/vim_patches.yml index 711ddae815..f4251336c7 100644 --- a/.github/workflows/vim_patches.yml +++ b/.github/workflows/vim_patches.yml @@ -50,6 +50,6 @@ jobs: if: ${{ steps.update-version.outputs.NEW_PATCHES != 0 }} run: | git add -u - git commit -m 'version.c: update [skip ci]' + git commit -m 'docs: update version.c [skip ci]' git push --force https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY} ${VERSION_BRANCH} gh pr create --draft --fill --label vim-patch --base ${GITHUB_REF#refs/heads/} --head ${VERSION_BRANCH} || true -- cgit From 631d5189adaaf54eb48e0b136df3466880edb19c Mon Sep 17 00:00:00 2001 From: dundargoc Date: Wed, 1 May 2024 15:39:46 +0200 Subject: ci: improve default backport pull request title `[Backport release-x.y]` will no longer be part of the pull request title. This means the PR titles will go from looking like ``` [Backport release-0.9] fix(languagetree): remove double recursion in LanguageTree:parse ``` to ``` fix(languagetree): remove double recursion in LanguageTree:parse ``` The benefit of this is that pull requests merged with the "Squash and Merge" strategy (which uses the PR title as the commit message), will still follow the conventional commits specification. This will help tools that rely on conventional commits such as git-cliff. The `backport` label is added to backported PRs to help distinguish between backport PRs with regular PRs in the "Pull Requests" tab on github. To reduce confusion with the `backport` label, the label to trigger the backporting has been changed from `backport release-x.y` to `ci:backport release-x.y`. This is also more consistent with other labels that trigger a CI job which all use the `ci:` prefix. --- .github/workflows/backport.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 88cddcded4..f89b06fc8f 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -12,11 +12,24 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Create backport PRs + - name: Create backport PR + id: backport uses: korthout/backport-action@v2 with: + pull_title: "${pull_title}" + label_pattern: "^ci:backport ([^ ]+)$" # https://github.com/korthout/backport-action/pull/399 experimental: > { "detect_merge_method": true } + + - uses: actions/github-script@v7 + with: + script: | + github.rest.issues.addLabels({ + issue_number: ${{steps.backport.outputs.created_pull_numbers}}, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ['backport'] + }) -- cgit From d26943a6e185dea23077d41b4c81281e12be3997 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Thu, 2 May 2024 00:58:07 +0200 Subject: ci: don't try to label backport PR if it was not created --- .github/workflows/backport.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index f89b06fc8f..4b53793aa7 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -24,7 +24,8 @@ jobs: "detect_merge_method": true } - - uses: actions/github-script@v7 + - if: ${{steps.backport.outputs.was_successful == 'true'}} + uses: actions/github-script@v7 with: script: | github.rest.issues.addLabels({ -- cgit From c1396afa7c41c2009d06a54c8aaf1ca5689a9786 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 11 May 2024 12:24:10 +0200 Subject: ci(build): use latest over explicit image version These jobs should be safe to just use the latest as there's not many moving parts as opposed to `test.yml`. --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '.github/workflows') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81e8ceefd7..a2316f3f0f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ env: jobs: old-cmake: name: Test oldest supported cmake - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest timeout-minutes: 15 env: CMAKE_URL: 'https://cmake.org/files/v3.13/cmake-3.13.0-Linux-x86_64.sh' @@ -56,7 +56,7 @@ jobs: use-existing-src: name: Test USE_EXISTING_SRC_DIR=ON builds with no network access - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: ./.github/actions/setup -- cgit From 512d228111bccf3e52613c798edc7f803c1de13f Mon Sep 17 00:00:00 2001 From: dundargoc Date: Fri, 17 May 2024 22:35:46 +0200 Subject: ci: change label `backport` to `target:release` `backport` is too similar `ci:backport release-x.y` and causes confusion. --- .github/workflows/backport.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to '.github/workflows') diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 4b53793aa7..9fbe837106 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -32,5 +32,5 @@ jobs: issue_number: ${{steps.backport.outputs.created_pull_numbers}}, owner: context.repo.owner, repo: context.repo.repo, - labels: ['backport'] + labels: ['target:release'] }) -- cgit