aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/test.yml
Commit message (Collapse)AuthorAge
* ci(test): enable translations in at least one job (#32833)zeertzjq2025-03-11
| | | | | Enable translations in the GCC release job, as it's the fastest. Although there aren't many tests for translation behavior, this still allows ensuring that Nvim isn't broken when translations are enabled.
* ci(test): disable ubuntu armdundargoc2025-02-15
| | | | | There are too many flakes and intermittent failures to reliably use it. Disable it for the time being until things stabilize.
* build: add luals checkdundargoc2025-02-09
| | | | | | | | | | | | | | | | | | | This automatically downloads and uses the correct luals binary for the currently used system. `make luals` will run luals on all lua files in `runtime`. We download lua-language-server manually instead of relying on contributors downloading it on their own (like with stylua) as lua-language-server is updated frequently which may cause unnecessary friction. Therefore, we download a pinned version of luals which we then can manually bump when needed. This can be re-evaluated if luals becomes more stable in the future. Currently this is not run when using `make lint` since cmake style "file caching" doesn't seem possible at the moment. This is because checking a single file doesn't seem to work. Work on https://github.com/neovim/neovim/issues/24563.
* ci(arm64): skip installing npm to prevent segmentation faultsdundargoc2025-02-08
| | | | | | | Installing npm on linux arm64 causes intermittent segmentation faults for unknown reasons. Closes https://github.com/neovim/neovim/issues/32339.
* ci(tests): remove build-types jobsChristian Clason2025-01-24
| | | | | | | | Problem: Some CI jobs are redundant: `RelWithDebInfo` is already tested on Linux-Arm64; `MinSizeRel` and Ninja Multi Config are not sufficiently relevant in practice to spend CI cycles on. Solution: Remove `build-types` job.
* ci(tests): add arm64 runnerChristian Clason2025-01-24
| | | | | | | Problem: Linux `aarch64`/`arm64` builds are not tested. Solution: Add `ubuntu-arm` runners to test matrix (using `RelWithDebInfo` build).
* ci: run tests directly rather than via the MakefileJames McCoy2024-12-03
| | | | Since the Makefile is not used to build, running the tests via the Makefile causes cmake to reconfigure and revert the release build back to debug.
* ci(test): remove the .git directory for LinuxJames McCoy2024-12-03
| | | | | | | Tests should not rely on being run inside a git clone, so the Linux builds cover this use case. The macOS builds will continue running with the .git directory so there's still unix-ish coverage within a git clone.
* ci: run one set of tests with a release buildJames McCoy2024-12-03
| | | | | | This ensures that no tests fail due to differences between release and debug builds. The release build-type check is now unnecessary, too, so remove it.
* ci: bump Intel macOS runners to 13Christian Clason2024-10-19
| | | | | | Problem: macos-12 GH runners are deprecated and will be removed soon. Solution: use macos-13 runners instead.
* ci: bump macos runner version to macos-15dundargoc2024-10-06
|
* ci: bump ubuntu runner version to ubuntu-24.04dundargoc2024-10-05
| | | | Also bump clang to version 20.
* build(deps): vendor libvterm at v0.3.3Christian Clason2024-08-10
| | | | | | | | Problem: Adding support for modern Nvim features (reflow, OSC 8, full utf8/emoji support) requires coupling libvterm to Nvim internals (e.g., utf8proc). Solution: Vendor libvterm at v0.3.3.
* build(deps): remove libtermkey dependencyGregory Anders2024-08-05
| | | | It's been vendored since https://github.com/neovim/neovim/pull/25870.
* build(deps): remove msgpack-c dependencybfredl2024-08-05
|
* ci: adjust workflows to enable required checksdundargoc2024-07-15
| | | | | | | | | | | | | | Auto-merging is a useful feature by github, but it requires required checks which requires a few adjustments. The primary change is that required checks can't use `paths` or `paths-ignore` as that risks not running the job, and required checks must always be run. A workaround for this is to introduce a dummy workflow which is used for every path not used in the real workflow. That way the required job is "always" run as far as github is concerned. The workaround is unweildly so it's only useful to do it for costly workflows where the potential benefits are big. If not it's better to simply remove any `paths` or `paths-ignore` from a workflow instead.
* ci: enable unittests on macos-14Joey Gouly2024-04-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.
* ci: use `--break-system-packages` on mac when installing pynvimdundargoc2024-03-29
| | | | | | | 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.
* ci: add workflow_dispatch event to testing workflowsdundargoc2024-03-27
| | | | This allows us to easily test the release branch if needed.
* ci(windows): optionally test windows with ASANdundargoc2024-03-23
| | | | Add the label `ci:windows-asan` to enable it.
* ci: simplify concurrency stringdundargoc2024-03-16
| | | | | | | `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.
* ci: test on macOS M1 (#27276)Christian Clason2024-02-17
| | | | | | | Problem: No test coverage on ARM. Solution: Add `macos-14` tests, which now run on M1. Skip unit tests as these don't work on M1, see #26145. Also test universal build on M1. Note: `macos-14` will be `macos-latest` in Q2 2024, so we'll want to switch these to keep Intel and unittest coverage on macos (while GH still offers Intel runners).
* ci(test.yml): explicitly set build type (#27503)zeertzjq2024-02-17
| | | | | Explicitly set the build type for both deps and Nvim. They are already explicitly set on Windows to RelWithDebInfo. Now also explicitly set them to Debug on POSIX.
* ci: refactor CI filesdundargoc2023-12-09
| | | | | Mostly rename file and variable names to be more consistent. This makes it easier to locate them in the "Actions" tab on github.
* ci: remove python workarounddundargoc2023-12-08
| | | | The provider tests seems to work now without this workaround.
* ci: use the latest stylua versiondundargoc2023-12-05
| | | | | Using `jq` is not needed as github provides a "latest" shortcut to do what download the latest release.
* ci: create setup actiondundargoc2023-12-01
| | | | This deduplicates common operations.
* ci: remove UBSAN_OPTIONS environment variable (#25963)zeertzjq2023-11-10
| | | | | Because it overrides log_path from ASAN_OPTIONS. Ref https://github.com/google/sanitizers/issues/1675
* ci: work around flaky python3 testsdundargoc2023-11-06
| | | | | | | | Python3 provider tests suddenly became extremely flaky on macos for unknown reasons. For some reason, installing python with the setup-python action over using the default python fixes the flakiness. Use this workaround for the time being to unblock CI while we figure out the root cause.
* build: various cmake fixesdundargoc2023-11-04
| | | | | | | - silence false warnings on MSVC - merge `clang-tidy` cmake target into `lintc` and remove the corresponding make target - use cmake's built-in endianness detection
* ci: various fixesdundargoc2023-11-03
| | | | | | | - adjust reviewers - add workflow as cache key - install attr only when tesitng - fix s390x workflow by checking out the merge PR instead of master
* build: set char to always be signeddundargoc2023-11-01
| | | | | Sticking to the same convention makes it easier to reason about the code and reduces complexity.
* ci: run tests in paralleldundargoc2023-10-22
| | | | | | | | | | | | | | | This will run the three test suites (unit, functional and old) in parallel, meaning that neovim is built for each test and run separately. This has a slight increase in total CI usage, but it allows rerunning only the specific test suite that failed for flaky tests, which will save some time. Ideally we'd remove any drawbacks by building neovim once and reusing it for each test suite, but that is not currently possible due to poor upload/download speeds of the upload-artifact and download-artifact actions. This has been addressed in https://github.com/actions/toolkit/pull/1488, but will only be made available in upload-artifact@v4 and download-artifact@v4.
* ci: install perl provider on macdundargoc2023-10-21
| | | | | | Perl provider installation was previously disabled on mac due to a version conflict in 79bf5074499ae06788762ec49d12af6175b01d15. It is no longer present, so we enable it.
* ci: use clang 17 as the default clang version is too olddundargoc2023-10-09
|
* ci: various cleanupsdundargoc2023-10-09
| | | | | - add reviewers - correct cache key
* ci: enable clang-analyzer warningsdundargoc2023-10-09
| | | | | | | | | | | | | This adds the checks in https://neovim.io/doc/reports/clang/ when using clang-tidy. The strategy is to enable all clang-analyzer checks, and disable only the checks for the warnings that exist currently. This allows us to eliminate each warning type without blocking ongoing work, but also without adding bugs for already eliminated warnings. The plan is to eventually eliminate https://neovim.io/doc/reports/clang/ by completely integrating it into the clang-tidy check. Also add make and cmake targets `clang-analyzer` to run this check.
* ci: install stylua from their releasesdundargoc2023-09-10
| | | | It's quicker to grab the .zip file rather than using homebrew.
* revert: "ci: trigger tests when pushing"dundargoc2023-09-09
| | | | | | | | | This reverts commit e71c7898ca3cf3af1243227ff3cba526d48897e8. Triggering jobs on users own fork turned out to be not that useful, and only necessary in rare moments. It's easier to adjust the CI scripts if the users wants CI results before creating a pull request. It also reduces the complexity of the CI code.
* ci: bump actions/checkout from 3 to 4dependabot[bot]2023-09-04
| | | | | | | | | | | | | | | Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* ci: move external_deps job from cirrus-ci back to github actionsdundargoc2023-09-03
| | | | | | | This partially reverts commit 7d0479c55810af9bf9f115ba69d1419ea81ec41e. The job has been particularly unstable when used with docker on cirrus-ci, which is especially bad as it's meant to be a non-flaky and simple test.
* ci: introduce CI_LINT optiondundargoc2023-06-24
| | | | | | This will abort if lint programs are not found, and is meant primarily for the lint job in CI. Supersedes the REQUIRED argument in add_glob_target as it's a superior replacement by being a built-in solution.
* docs: small fixes (#23619)dundargoc2023-06-02
| | | | | | Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com> Co-authored-by: Gustavo Ferreira <gustavo.ferreira@imaginecurve.com> Co-authored-by: Kai Moschcau <mail@kmoschcau.de> Co-authored-by: Lampros <hauahx@gmail.com>
* ci: remove reviewdog for uncrustifydundargoc2023-05-27
| | | Now that uncrustify is bundled it is no longer necessary.
* build: remove functionaltest-lua targetdundargoc2023-05-24
| | | | | It's not needed anymore as it does the exact same thing as functionaltest. The functionaltest target will test the lua type neovim was built with, which can be toggled with the PREFER_LUA option.
* build: bundle uncrustifydundargoc2023-05-18
| | | | | | Uncrustify is sensitive to version changes, which causes friction for contributors that doesn't have that exact version. It's also simpler to download and install the correct version than to have bespoke version checking.
* ci: remove redundant asan and ubsan optionsii142023-05-15
| | | We now have default options for ASAN and UBSAN (#23259)
* ci: trigger tests when pushingdundargoc2023-05-15
| | | | | | | | | | | | | | | | | | This will allow contributors to test changes in their own fork when pushing without needing to make a pull request. This can be useful when wanting to test out an idea before initiating a review process. Make the following assumptions when defining concurrency: - Pull request will work the same. - Pushes to the neovim repo will work the same: each unique commit will trigger a test run that won't cancel each other. - Pushes to forks will cancel older CI runs on the same branch, similar to how pull requests work. This will create duplicate CI runs when doing a pull request, one in the neovim repo for the pull request event and one in the fork for the push event. This is an acceptable trade as the runs in the fork doesn't count towards the CI limit of neovim. Contributors are also free to disable these actions in their own fork if they wish.
* docs: small fixesdundargoc2023-05-13
| | | | | | | | | Co-authored-by: Christian Clason <c.clason@uni-graz.at> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: HiPhish <hiphish@posteo.de> Co-authored-by: Julio B <julio.bacel@gmail.com> Co-authored-by: T727 <74924917+T-727@users.noreply.github.com> Co-authored-by: camoz <camoz@users.noreply.github.com> Co-authored-by: champignoom <66909116+champignoom@users.noreply.github.com>
* ci: make install_deps.sh more flexibledundargoc2023-04-29
| | | | This will allow us to use it in containers as well as specify whether we want to install test dependencies.