aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/test.yml
Commit message (Collapse)AuthorAge
* 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.
* ci: install uncrustify through homebrewdundargoc2023-04-29
| | | | It will result in less CI code, and the additional CI time is negligible.
* ci: replace stylua action with our own lint targetdundargoc2023-04-29
| | | | | | | This will prevent situations where the linting works on CI but not locally, at the cost of increased CI time. Also manually ignore `runtime/vim/lua/re.lua`, as the .styluaignore isn't respected when specifying a file instead of a directory.
* ci: containerize the external dependencies testdundargoc2023-04-26
| | | | | | Cirrus ci automatically pushes/caches docker images, which makes containerization much simpler to handle. Moving this job to cirrus ci shortens the job by a minute, and reduces github actions CI usage by two minutes per PR.
* build: add "ci" configure preset to reduce verbositydundargoc2023-04-23
| | | | | | | | | | `cmake --preset ci` is equivalent to `cmake -B build -G Ninja -D CI_BUILD=ON` Also remove build presets as they're not very useful without workflow presets, which are only available in schema versions 6 and above.
* ci: reuse script to enable Developer Command Promptdundargoc2023-04-23
|
* build: drop diff.exe from windows buildsdundargoc2023-04-22
| | | | | | | | The shipped versions of xdiff already does everything diff does, so this duplication of tools isn't necessary. Furthermore, this setup is more consistent overall, as the 'diffopt=external' option should be for external programs rather than programs we bundle neovim with. Install diffutils for oldtests in CI to avoid needing to modify tests.
* Merge pull request #23106 from bfredl/nlua0bfredl2023-04-19
|\ | | | | refactor(build): use vendored versions of mpack and luabitop
| * refactor(build): use vendored versions of mpack and luabitopbfredl2023-04-19
| |
* | build: update uncrustify to 0.76Lewis Russell2023-04-19
|/
* build: find system luv on ubuntudundargoc2023-04-19
| | | Also use the system luv in CI for the with-external-deps job.
* build(ci): ensure correct headers are used on macOSCarlo Cabrera2023-04-09
| | | | | | | | | | Currently, the release build picks up headers in `/Library/Frameworks/Mono.framework/Headers`. You can verify this by downloading the latest nightly build and checking the output of `nvim --version`. These headers are likely to be from a different version of `libintl` than the one we link to. Let's avoid usage of them by setting `CMAKE_FIND_FRAMEWORK` to `NEVER`.
* ci: don't automatically enable -Werror on CI environmentsdundargoc2023-04-07
| | | | | | This catches downstream consumers of neovim off guard when using neovim in an esoteric environment not tested in our own CI. Closes https://github.com/neovim/neovim/issues/22932
* refactor(treesitter): delegate region calculation to treesitter (#22576)Lewis Russell2023-04-04
|
* build!: rename sanitizer options from CLANG_* to ENABLE_*ii142023-03-17
|
* ci: bump to windows 2022dundargoc2023-03-11
| | | | Skip failing funcitonaltests. Use jobstart() instead termopen() for oldtests to prevent CI freezing.
* ci: skip ruby provider tests on Windowsdundargoc2023-03-11
| | | | | Installing the ruby provider takes anything between 1 and 1.5 minutes on Windows, which is a big drain on our CI. Remove it until we find a more sustainable solution.
* ci: don't install unused packagesdundargoc2023-03-11
| | | | | | | | | | The lua client is no longer needed after d6279f9392073cb1422d76c57baf3fd283ed954e. One of its dependencies, mpack, is still needed however. Remove lua-nvim and replace it with lua-mpack. The other packages are most likely not needed as we no longer run tests for external dependencies.
* ci: test build with external dependencies on every pull requestdundargoc2023-03-11
| | | | | | Only testing the build with external dependencies on build system changes is too naive, as demonstrated by b9f19d3e286d95d9209afbc479fa2eb908067fb1.
* ci: remove environment variable DEPS_BUILD_DIR from CIdundargoc2023-03-11
| | | | | | If one uses .deps when DEPS_BUILD_DIR is defined in another location it leads to very surprising behaviors, as it looks for libraries in other places other than .deps.
* refactor(build): make installation of runtime/ more effectivebfredl2023-03-07
| | | | | | | | | | | | | | | | | | | Currently files to install in runtime/ is detected by recursive glob pattern which has two problems: - cmake needs to do a of work at config time and build/runtime/cmake_install.cmake becomes HUGE (2.5MB, biggest config file) - we need to explicitly specify each file suffix used in the entire runtime, which is duplication of information. These globs specify every single file in a subdirectory. Thus, we can just install every runtime/ subdirectory as a single install command. Furthermore, at the top-level, only .vim and .lua files need to be installed. Further possible refactor: we could move files which does not belong in $PREFIX/runtime out of $REPO/runtime. Then runtime could be installed with a single install_helper(DIRECTORY ...) command.
* test: move oldtests to test directory (#22536)dundargoc2023-03-07
| | | | | The new oldtest directory is in test/old/testdir. The reason for this is that many tests have hardcoded the parent directory name to be 'testdir'.
* ci: remove core dump checking from test.ymldundargoc2023-03-05
| | | | | There is already a superior core dump check in test/helpers.lua, which makes this obsolete.
* ci: use the same deps directory location for all jobsdundargoc2023-03-05
| | | | | | | | Having separate directory location causes failures to be inconsistent and ultimately confusing. A common problem is a file with a particular name is searched for the entire repository, which gives different results if the dependency directory is inside the neovim directory or outside of it.
* ci: move configuring cmake to the build part of the CIdundargoc2023-03-04
| | | | If the configuration fails then lints shouldn't be run, as most lint steps depends on a successful configuration.
* ci: build all build types on each PR (#22441)dundargoc2023-02-27
| | | | | | Building with Release and RelWithDebInfo build types only on build system changes is too optimistic, as shown by https://github.com/neovim/neovim/pull/22436 and 659234c95a23307486a4b7496f3f4391a4bdbe58.
* ci: enable CI_BUILD automatically if environment variable CI is true (#22312)dundargoc2023-02-18
| | | | | | | Having to specify CI_BUILD for every CI job requires boilerplate. More importantly, it's easy to forget to enable CI_BUILD, as seen by 8a20f9f98a90a7a43aea08fcde2c40a5356b4f7b. It's simpler to remember to turn CI_BUILD off when a job errors instead of remembering that every new job should have CI_BUILD on.
* build: test multi-config generator (#22310)dundargoc2023-02-18
| | | | | | Multi-config generators can be tricky so testing them would be good. Also test GCC release and MinSizeRel build types as they're prone to unusual warnings. Remove release testing from test.yml as this is a sufficient replacement.