diff options
| author | Josh Rahm <joshuarahm@gmail.com> | 2024-11-19 22:57:13 +0000 |
|---|---|---|
| committer | Josh Rahm <joshuarahm@gmail.com> | 2024-11-19 22:57:13 +0000 |
| commit | 9be89f131f87608f224f0ee06d199fcd09d32176 (patch) | |
| tree | 11022dcfa9e08cb4ac5581b16734196128688d48 /.github/workflows | |
| parent | ff7ed8f586589d620a806c3758fac4a47a8e7e15 (diff) | |
| parent | 88085c2e80a7e3ac29aabb6b5420377eed99b8b6 (diff) | |
| download | rneovim-9be89f131f87608f224f0ee06d199fcd09d32176.tar.gz rneovim-9be89f131f87608f224f0ee06d199fcd09d32176.tar.bz2 rneovim-9be89f131f87608f224f0ee06d199fcd09d32176.zip | |
Merge remote-tracking branch 'upstream/master' into mix_20240309
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/backport.yml | 28 | ||||
| -rw-r--r-- | .github/workflows/build.yml | 19 | ||||
| -rw-r--r-- | .github/workflows/build_dummy.yml | 33 | ||||
| -rw-r--r-- | .github/workflows/docs.yml | 7 | ||||
| -rw-r--r-- | .github/workflows/labeler_pr.yml | 19 | ||||
| -rw-r--r-- | .github/workflows/lintcommit.yml | 2 | ||||
| -rw-r--r-- | .github/workflows/lintcommit_dummy.yml | 16 | ||||
| -rw-r--r-- | .github/workflows/notes.md | 7 | ||||
| -rw-r--r-- | .github/workflows/optional.yml | 6 | ||||
| -rw-r--r-- | .github/workflows/reviewers_add.yml | 2 | ||||
| -rw-r--r-- | .github/workflows/test.yml | 32 | ||||
| -rw-r--r-- | .github/workflows/test_windows.yml | 1 | ||||
| -rw-r--r-- | .github/workflows/vim_patches.yml | 2 |
13 files changed, 130 insertions, 44 deletions
diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 9fbe837106..25a52c4757 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -12,25 +12,35 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + + - uses: actions/create-github-app-token@v1 + id: app-token + with: + app-id: ${{ vars.BACKPORT_APP }} + private-key: ${{ secrets.BACKPORT_KEY }} + - name: Create backport PR id: backport - uses: korthout/backport-action@v2 + uses: korthout/backport-action@v3 with: pull_title: "${pull_title}" label_pattern: "^ci:backport ([^ ]+)$" - # https://github.com/korthout/backport-action/pull/399 - experimental: > - { - "detect_merge_method": true - } + github_token: ${{ steps.app-token.outputs.token }} - - if: ${{steps.backport.outputs.was_successful == 'true'}} + - name: Create failed backport label + if: ${{ steps.backport.outputs.was_successful == 'false' }} uses: actions/github-script@v7 with: script: | github.rest.issues.addLabels({ - issue_number: ${{steps.backport.outputs.created_pull_numbers}}, + issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, - labels: ['target:release'] + labels: ['needs:backport'] }) + + - name: Enable automerge + if: ${{ steps.backport.outputs.was_successful == 'true' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh pr merge --rebase --auto ${{ steps.backport.outputs.created_pull_numbers }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a2316f3f0f..ab313729b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,13 +21,28 @@ env: 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' + 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 diff --git a/.github/workflows/build_dummy.yml b/.github/workflows/build_dummy.yml new file mode 100644 index 0000000000..b499ba7fa2 --- /dev/null +++ b/.github/workflows/build_dummy.yml @@ -0,0 +1,33 @@ +name: build_dummy +on: + pull_request: + branches: + - 'master' + - 'release-[0-9]+.[0-9]+' + # This needs to be an exact complement of `paths` in the build.yml workflow. + # This is required to bypass required checks since a required job is always + # needed to run. + paths-ignore: + - '**.cmake' + - '**/CMakeLists.txt' + - '**/CMakePresets.json' + - 'cmake.*/**' + - '.github/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + +jobs: + old-cmake: + name: Test oldest supported cmake + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - run: echo "success" + + use-existing-src: + name: Test USE_EXISTING_SRC_DIR=ON builds with no network access + runs-on: ubuntu-latest + steps: + - run: echo "success" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c91f2945fb..f132404382 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,13 +2,6 @@ name: docs on: pull_request: types: [opened, synchronize, reopened, ready_for_review] - paths: - - 'src/nvim/api/*.[ch]' - - 'src/nvim/eval.lua' - - 'runtime/lua/**.lua' - - 'runtime/doc/**' - - 'scripts/gen_vimdoc.py' - - 'scripts/gen_help_html.lua' jobs: docs: runs-on: ubuntu-latest diff --git a/.github/workflows/labeler_pr.yml b/.github/workflows/labeler_pr.yml index 8fd93bfb6d..5d402c3c03 100644 --- a/.github/workflows/labeler_pr.yml +++ b/.github/workflows/labeler_pr.yml @@ -33,8 +33,25 @@ jobs: - name: "Extract if the PR is a breaking change and add it as label" run: gh pr edit "$PR_NUMBER" --add-label "$(echo "$PR_TITLE" | sed -E 's|[[:alpha:]]+(\(.*\))?!:.*|breaking-change|')" || true - request-reviewer: + target-release: needs: ["changed-files", "type-scope"] + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - if: startsWith(github.base_ref, 'release') + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.addLabels({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + labels: ['target:release'] + }) + + request-reviewer: + needs: ["changed-files", "type-scope", "target-release"] permissions: pull-requests: write uses: ./.github/workflows/reviewers_add.yml diff --git a/.github/workflows/lintcommit.yml b/.github/workflows/lintcommit.yml index 3d140532cd..49dc7f3e66 100644 --- a/.github/workflows/lintcommit.yml +++ b/.github/workflows/lintcommit.yml @@ -1,4 +1,4 @@ -name: "lintcommit" +name: lintcommit on: pull_request: types: [opened, synchronize, reopened, ready_for_review] diff --git a/.github/workflows/lintcommit_dummy.yml b/.github/workflows/lintcommit_dummy.yml new file mode 100644 index 0000000000..e4a0c4af2d --- /dev/null +++ b/.github/workflows/lintcommit_dummy.yml @@ -0,0 +1,16 @@ +# Dummy workflow of lintcommit.yml. lintcommit is a required check, but it's +# only designed to work on master. Since required checks are always required to +# run, we can essentially "skip" the lintcommit on release branches with this +# dummy check that automatically passes. +name: lintcommit_dummy +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + branches: + - 'release-[0-9]+.[0-9]+' +jobs: + lint-commits: + runs-on: ubuntu-latest + if: github.event.pull_request.draft == false + steps: + - run: echo "success" diff --git a/.github/workflows/notes.md b/.github/workflows/notes.md index f67a098687..25f4a5fb32 100644 --- a/.github/workflows/notes.md +++ b/.github/workflows/notes.md @@ -18,6 +18,8 @@ ${NVIM_VERSION} 2. Run the MSI 3. Run `nvim.exe` on your CLI of choice +Note: On Windows "Server" you may need to [install vcruntime140.dll](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170). + ### macOS (x86_64) 1. Download **nvim-macos-x86_64.tar.gz** @@ -34,11 +36,10 @@ ${NVIM_VERSION} ### Linux (x64) -Minimum glibc version to run these releases is 2.31. People requiring releases -that work on older glibc versions can find them at -https://github.com/neovim/neovim-releases. +glibc 2.31 or newer is required. Or you may try the (unsupported) [builds for older glibc](https://github.com/neovim/neovim-releases). #### AppImage + 1. Download **nvim.appimage** 2. Run `chmod u+x nvim.appimage && ./nvim.appimage` - If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage): diff --git a/.github/workflows/optional.yml b/.github/workflows/optional.yml index 742d51377f..540daccc56 100644 --- a/.github/workflows/optional.yml +++ b/.github/workflows/optional.yml @@ -11,7 +11,7 @@ concurrency: env: INSTALL_PREFIX: ${{ github.workspace }}/nvim-install # Double test timeout since it's running via qemu - TEST_TIMEOUT: 2400 + TEST_TIMEOUT: 3600 # TEST_FILE: test/functional/shada # TEST_FILTER: foo @@ -23,7 +23,7 @@ jobs: matrix: test: [functionaltest, oldtest] runs-on: ubuntu-latest - timeout-minutes: 60 + timeout-minutes: 90 steps: - run: docker run --rm --privileged multiarch/qemu-user-static:register --reset - uses: docker://multiarch/ubuntu-core:s390x-focal @@ -34,7 +34,7 @@ jobs: bash -c " apt-get -y update && - DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential cmake curl gettext ninja-build locales-all cpanminus git attr libattr1-dev && + time DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential cmake curl gettext ninja-build locales-all cpanminus git attr libattr1-dev xdg-utils && useradd --create-home qemuci && chown -R qemuci. . && runuser -u qemuci -- git clone --depth=1 https://github.com/neovim/neovim.git && diff --git a/.github/workflows/reviewers_add.yml b/.github/workflows/reviewers_add.yml index b116bca29b..90b473c754 100644 --- a/.github/workflows/reviewers_add.yml +++ b/.github/workflows/reviewers_add.yml @@ -5,7 +5,7 @@ on: workflow_call: jobs: request-reviewer: - if: github.event.pull_request.state == 'open' && github.event.pull_request.draft == false + if: github.event.pull_request.state == 'open' && github.event.pull_request.draft == false && !endsWith(github.actor, '[bot]') runs-on: ubuntu-latest permissions: pull-requests: write diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d0ee18ab73..522692b30a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,8 +8,6 @@ on: branches: - 'master' - 'release-[0-9]+.[0-9]+' - paths-ignore: - - 'contrib/**' workflow_dispatch: concurrency: @@ -30,7 +28,7 @@ env: jobs: lint: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 10 env: CC: clang @@ -80,7 +78,7 @@ jobs: run: cmake --build build --target lintc-uncrustify clang-analyzer: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 20 env: CC: clang @@ -95,18 +93,23 @@ jobs: - run: cmake --build build --target clang-analyzer posix: - name: ${{ matrix.build.runner }} ${{ matrix.build.flavor }} ${{ matrix.build.cc }} ${{ matrix.test }} + name: ${{ matrix.build.os }} ${{ matrix.build.flavor }} ${{ matrix.build.cc }} ${{ matrix.test }} strategy: fail-fast: false matrix: + # The `os` field is not needed to differentiate between the different + # matrix builds. It is needed to not change the required checks (which + # uses jobs names) each time we bump the runner version. It may be + # possible to remove if we e.g. start using `-latest` runner versions + # or if github introduces a wildcard for required checks in the future. build: [ - { runner: ubuntu-22.04, flavor: asan, cc: clang, flags: -D ENABLE_ASAN_UBSAN=ON }, - { runner: ubuntu-22.04, flavor: tsan, cc: clang, flags: -D ENABLE_TSAN=ON }, - { runner: ubuntu-22.04, cc: gcc }, - { runner: macos-12, cc: clang, flags: -D CMAKE_FIND_FRAMEWORK=NEVER, deps_flags: -D CMAKE_FIND_FRAMEWORK=NEVER }, - { runner: macos-14, cc: clang, flags: -D CMAKE_FIND_FRAMEWORK=NEVER, deps_flags: -D CMAKE_FIND_FRAMEWORK=NEVER }, - { runner: ubuntu-22.04, flavor: puc-lua, cc: gcc, deps_flags: -D USE_BUNDLED_LUAJIT=OFF -D USE_BUNDLED_LUA=ON, flags: -D PREFER_LUA=ON }, + { runner: ubuntu-24.04, os: ubuntu, flavor: asan, cc: clang, flags: -D ENABLE_ASAN_UBSAN=ON }, + { runner: ubuntu-24.04, os: ubuntu, flavor: tsan, cc: clang, flags: -D ENABLE_TSAN=ON }, + { runner: ubuntu-24.04, os: ubuntu, cc: gcc }, + { runner: macos-12, os: macos, flavor: 12, cc: clang, flags: -D CMAKE_FIND_FRAMEWORK=NEVER, deps_flags: -D CMAKE_FIND_FRAMEWORK=NEVER }, + { runner: macos-15, os: macos, cc: clang, flags: -D CMAKE_FIND_FRAMEWORK=NEVER, deps_flags: -D CMAKE_FIND_FRAMEWORK=NEVER }, + { runner: ubuntu-24.04, os: ubuntu, flavor: puc-lua, cc: gcc, deps_flags: -D USE_BUNDLED_LUAJIT=OFF -D USE_BUNDLED_LUA=ON, flags: -D PREFER_LUA=ON }, ] test: [unittest, functionaltest, oldtest] exclude: @@ -199,7 +202,7 @@ jobs: # single-config generators so it's nice to have a small sanity check for # multi-config. build-types: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 10 env: CC: gcc @@ -225,7 +228,7 @@ jobs: run: cmake --build build --config MinSizeRel with-external-deps: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 10 env: CC: gcc @@ -238,8 +241,6 @@ jobs: sudo add-apt-repository ppa:neovim-ppa/stable sudo apt-get install -y \ libluajit-5.1-dev \ - libmsgpack-dev \ - libtermkey-dev \ libunibilium-dev \ libuv1-dev \ lua-filesystem \ @@ -247,7 +248,6 @@ jobs: luajit \ lua-luv-dev # libtree-sitter-dev \ - # libvterm-dev # Remove comments from packages once we start using these external # dependencies. diff --git a/.github/workflows/test_windows.yml b/.github/workflows/test_windows.yml index d92993a08c..db7ad93f55 100644 --- a/.github/workflows/test_windows.yml +++ b/.github/workflows/test_windows.yml @@ -60,6 +60,7 @@ jobs: uses: msys2/setup-msys2@v2 with: update: true + install: unzip pacboy: >- make:p gcc:p diffutils:p release: false diff --git a/.github/workflows/vim_patches.yml b/.github/workflows/vim_patches.yml index f4251336c7..b0be01089f 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 'docs: update version.c [skip ci]' + git commit -m 'docs: update version.c' 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 |