aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
Commit message (Collapse)AuthorAge
...
* ci: inline external environment scripts (#22237)dundargoc2023-02-12
| | | | Scripts that define the build itself shouldn't be external as they lead to hard to find bugs.
* ci: convert environment variables to matrix variables (#22224)dundargoc2023-02-12
| | | | Having as few indirections as possible makes it easier to understand the code.
* ci: delete ci/ (#22227)dundargoc2023-02-12
| | | | | | | | | | | | | | | | | | | | | | | | Having CI scripts that is separate from the build system causes tremendous amounts of problems, headaches and bugs. Testing the validity of the scripts locally become near impossible as time goes on as they're only vetted if it works on whatever CI provider we happened to have at the time, with their own quirks and behavior. The extra indirection between "cmake <-> general CI scripts <-> GHA" is also a frequent source of problems, as the orchestration needs to be done with environment variables, cmake flags and github actions matrix strategy. This combination has turned out to be exceptionally fragile. Examples: https://github.com/neovim/neovim/commit/15394b6855c3b17be06bf2bfbac7797d9c3ebf1d https://github.com/neovim/neovim/commit/13aa23b62af4df3e7f10687b76fe8c04efa2a598 https://github.com/neovim/neovim/pull/22072#discussion_r1094390713 A lot of the code was inlined to .github/workflows/ci.yml without further modifications. While this in itself doesn't integrate with our build system any more than the current situation, it does 1. remove a level of indirection, and more importantly 2. allow us to slowly start integrating the CI into our build system now that all the relevant code is in one place.
* ci: show all logs at the end of a run (#22226)dundargoc2023-02-11
| | | | | | * ci: show all logs at the end of a run The current CI won't show the logs on error due to early exit. This will at least show the logs, although for all tests at once.
* ci: inline build commands and remove before_script.sh (#22202)dundargoc2023-02-11
| | | | Abstracting the build commands to a separate script makes it more difficult to reason about it and more error-prone.
* ci: run lintcommit file from PR branch (#22219)dundargoc2023-02-11
| | | | As the trigger type is no longer pull_request_target there is no longer any risk of using the lintcommit script directly from the user PR.
* build(ci): let ASAN print tracebacks for more errors (SIGABORT, SIGILL)bfredl2023-02-10
|
* ci: remove unnecessary environment variables (#22175)dundargoc2023-02-10
|
* ci: split functionaltest-lua into two separate jobs (#22201)dundargoc2023-02-10
| | | | | | | | | | More specifically, move the job testing the oldest supported cmake into its own job. This opens the way for other jobs to use powerful and advanced cmake features such as choosing which files to use with the -S flag. Removed testing from this job as this probably won't reveal anything that other jobs already doesn't already show, since the only difference is the cmake version.
* ci(lintcommit): turn off debug tracing (#22196)dundargoc2023-02-09
| | | | The default output is too verbose and messy for someone not already familiar with lintcommit, which defeats it purpose.
* ci: inline internal caching script to Github actions (#22192)dundargoc2023-02-09
| | | | | I don't think it's possible to meaningfully abstract away caching on multiple providers, as each provider has different mechanisms on how they work.
* ci: add individual timeout limits for all tests (#22193)dundargoc2023-02-09
| | | | | The CI somtimes freezes on a specific test, wasting 45 minutes for the entire job. Adding a timeout of 15 minutes to functionaltest and 5 minutes to unittests will mitigate the problem.
* build: replace check-single-includes with clang-tidy (#22061)dundargoc2023-02-08
| | | | | | Clang-tidy already does what check-single-includes does automatically on top of its regular linting. It is also generator independent, so it doesn't take an eternity to run on slower generators such as Visual Studio.
* ci: add universal macos job (#22156)dundargoc2023-02-07
| | | | | The universal macos release is particularly sensitive to build system changes. Adding a job that builds a universal binary whenever a cmake file is changed will help prevent future release breaks.
* ci: simplify how environment variables are used (#22067)dundargoc2023-02-07
| | | | Having a clear separation between when we manipulate variables and when we export them to GITHUB_ENV makes it less error-prone.
* refactor(tests): run unittests using main nvim binary in interpreter modebfredl2023-01-31
| | | | This allows us to get rid of the separate "nvim-test" target
* ci(news): mention that ignoring news.txt is fine (#22043)dundargoc2023-01-29
| | | | news.txt is only meant as a reminder, but contributors have no way of knowing this automatically without such a message.
* ci: fix lintc to use external dependencies instead of bundled (#21995)dundargoc2023-01-25
| | | | | | | Use the bundled libvterm dependency as the external package is outdated, with the hopes of being able to use the external package once its version meets our required version. Co-authored-by: Christian Clason <c.clason@uni-graz.at>
* ci: enable CI_BUILD on windows (#21557)dundargoc2023-01-18
| | | | | | | | This will ensure warnings are treated as errors when using MSVC. Also fix const correctness warnings. The warnings in mbyte.c are false positives that triggers this warning on MSVC v19.32 and lower, which our CI still use. The (void *) casts can be removed once the CI MSVC version has been upgraded to v19.33 or higher.
* ci: run each linter once (#21825)dundargoc2023-01-16
| | | | | Running "make lintlua" will run both stylua and luacheck if both exist. But this is not necessary as we already lint with stylua with the stylua-action, so we only need to lint with luacheck on our own.
* ci: deduplicate TEST_FILE environment variable (#21667)dundargoc2023-01-15
|
* ci(tsan): run functionaltests instead of oldtests (#21744)zeertzjq2023-01-11
| | | | With TUI as an external process oldtests no longer involve threads, so TSAN isn't useful. Meanwhile functionaltests may involve threads.
* ci(news): checkout to HEAD commit instead of merge commit (#21679)dundargoc2023-01-07
| | | | | The default merge branch is unreliable when trying to determine number of commits in a PR. Using the HEAD branch of the PR removes this ambiguity.
* ci: use nvim -l in api-docs jobJustin M. Keyes2023-01-05
|
* feat(lua)!: execute Lua with "nvim -l"Justin M. Keyes2023-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Nvim has Lua but the "nvim" CLI can't easily be used to execute Lua scripts, especially scripts that take arguments or produce output. Solution: - support "nvim -l [args...]" for running scripts. closes #15749 - exit without +q - remove lua2dox_filter - remove Doxyfile. This wasn't used anyway, because the doxygen config is inlined in gen_vimdoc.py (`Doxyfile` variable). - use "nvim -l" in docs-gen CI job Examples: $ nvim -l scripts/lua2dox.lua --help Lua2DoX (0.2 20130128) ... $ echo "print(vim.inspect(_G.arg))" | nvim -l - --arg1 --arg2 $ echo 'print(vim.inspect(vim.api.nvim_buf_get_text(1,0,0,-1,-1,{})))' | nvim +"put ='text'" -l - TODO? -e executes Lua code -l loads a module -i enters REPL _after running the other arguments_.
* ci(release): properly set multiline output variable (#21560)zeertzjq2022-12-28
|
* ci: remove needs:response label if author responds (#21489)dundargoc2022-12-23
| | | | | | | | | | ci: remove "needs:response" label if author responds The default behavior of the stale action is to indiscriminately remove the `needs:response` label for any activity whatsoever, from anyone. The other option is to turn it off completely, meaning the maintainers needs to manually remove the label themselves when the author responds for an issue to not close automatically. Neither of these behaviors are useful to us.
* ci: bump api-docs runner to ubuntu-latest (#21501)dundargoc2022-12-22
| | | | | | This was set explicitly to ubuntu.22.04 as ubuntu-latest pointed to ubuntu.20.04, and we needed 22.04 to have a new enough doxygen version for this job to work. Now that ubuntu-latest points to 22.04 this workaround is no longer needed.
* ci: don't use asan_symbolize for the ASAN jobdundargoc2022-12-21
| | | | | | | asan_symbolize-14 gives a deprecation as it relies on outdated python features. We can safely stop using asan_symbolize as it's only needed for special cases such as cross compilation which we don't have to worry about.
* ci: bump stale action version (#21490)dundargoc2022-12-21
|
* ci: bump stylua action to v2 (#21455)dundargoc2022-12-17
|
* ci: add team reviewers (#21434)dundargoc2022-12-15
| | | | | | | | Using team reviewers when possible reduces the churn on the git history as we'll be able to add or remove reviewers without needing to change the workflow files. This requires using Github fine-grained personal access tokens with Pull Requests set to "Read and write" and Members to "Read-only".
* docs: fix typos (#21328)dundargoc2022-12-12
|
* fix(vim-patches): ensure libfuse is installedJames McCoy2022-12-09
|
* ci(news): fetch full history (#21312)dundargoc2022-12-06
| | | | We seem to need the parent commit of the earliest PR commit in order to perform common git functionality to check which files were changed.
* ci: create CI job to check if news needs to be updated (#21142)dundargoc2022-12-05
| | | | | | | | | | | | | If any commit message in the PR is either of type "feat" or is a breaking change, then there's a high probability that news.txt should be updated. Give an error if news.txt hasn't been updated in that case. This workflow cannot 100% correctly determine if news.txt should be updated even if the commit messages were exactly correct. The entries in news.txt is determined by changes between releases, while the commit messages are based on the master branch. While it is an approximation, it is still a useful enough one that it's still valuable to have this job as a reminder even if it gives an error if it shouldn't. In these cases it is perfectly fine to ignore the failure for this job.
* ci: use shell script to deduplicate workflow (#21079)dundargoc2022-12-05
|
* ci: use local action to make make cache keys consistent (#20538)dundargoc2022-12-05
| | | | The advantages of using an action is that it reduces boilerplate and repetition from the main ci.yml workflow.
* ci: rename workflow files to be simpler and more consistent (#21253)dundargoc2022-12-01
|
* ci(release/winget): correctly set output variable (#21077)Vedant2022-11-17
|
* ci(windows): set $PSNativeCommandArgumentPassing = 'Legacy' (#21083)zeertzjq2022-11-17
| | | | | | Ref https://github.com/actions/runner-images/issues/6586 Some runners are using new images, while some others are using old image. This is the only way I can find that makes it work on both.
* ci(stale): disable remove-stale-when-updated (#21075)zeertzjq2022-11-16
| | | | | The needs:response label should only be added and removed manually, and the action's behavior of removing the label on any activity (e.g. title change, removing reviewers) is unwanted.
* ci: add stale bot #20884dundargoc2022-11-06
| | | | | Stale strategy is to never automatically stale anything. Only mark stale issues or PRs if they get the `needs:response` label. In that case close after 30 days if there hasn't been any activity.
* ci: install only necessary dependencies #20970dundargoc2022-11-06
|
* ci: request reviewers when PR is reopened #20972dundargoc2022-11-06
|
* ci: replace deprecated feature set-output (#20834)dundargoc2022-11-05
| | | | | The new recommended way to share values between Github Actions steps is to use environment files: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter
* ci: remove ci/build.ps1 (#20891)dundargoc2022-11-05
| | | | Main benefit is that this will return the correct exit code by default, meaning the lengthy workarounds to properly fail a test aren't needed.
* ci: fix incorrect asan_symbolize name (#20900)dundargoc2022-11-05
|
* revert: "ci(commitlint): use pull_request_target to avoid "skip ci"" (#20845)dundargoc2022-11-05
| | | | | | | This reverts commit d7e2229b41748e84f525ee44cee19be81382ceab. This workflow isn't required to pass to merge a PR any more. Using pull_request_target to bypass the required check when using [skip ci] is therefore no longer needed.
* ci: skip tests if build fails (#20908)dundargoc2022-11-04
| | | | | | | | | | | | | | | | | | | | | | It's currently difficult to pinpoint the cause of a failure since all tests are run even if the build steps fail. But since the build failed the test will almost always fail as well as it's dependent on a successful build, leading to many steps being marked as a failure even though the real problem was the build step. Even worse, the default behavior of GitHub Actions is to only automatically show the last failed step, which is misleading if the build process fails since it'll show the logs of the failing test step. An easy solution would be to abort all subsequent steps if any steps fail. This isn't optimal however, as we want all lint and test failures to show on a single run instead of prematurely aborting on a single test step. We can solve both problems by dividing each job into two phases: the build/installation phase and the test/lint phase, with a checkmark step in between. The strategy is simple: if any step before the checkmark step fails (the build phase), then abort all following steps. If any step after the checkmark fails (the test phase), then show that test as failed but continue running all tests.