Commit Graph

332 Commits

Author SHA1 Message Date
dundargoc
ec932961cc
ci: inline internal caching script to Github actions (#22192)
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.
2023-02-09 21:13:03 +01:00
dundargoc
05d3bef836
ci: add individual timeout limits for all tests (#22193)
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.
2023-02-09 20:13:05 +01:00
dundargoc
d6d3a92013
build: replace check-single-includes with clang-tidy (#22061)
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.
2023-02-08 18:16:48 +01:00
dundargoc
81c5483dcb
ci: add universal macos job (#22156)
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.
2023-02-07 23:09:08 +01:00
dundargoc
c1d76363ac
ci: simplify how environment variables are used (#22067)
Having a clear separation between when we manipulate variables and when
we export them to GITHUB_ENV makes it less error-prone.
2023-02-07 14:43:45 +01:00
bfredl
13aa23b62a refactor(tests): run unittests using main nvim binary in interpreter mode
This allows us to get rid of the separate "nvim-test" target
2023-01-31 19:28:26 +01:00
dundargoc
9cb3b276bd
ci(news): mention that ignoring news.txt is fine (#22043)
news.txt is only meant as a reminder, but contributors have no way of
knowing this automatically without such a message.
2023-01-29 17:03:53 +01:00
dundargoc
15394b6855
ci: fix lintc to use external dependencies instead of bundled (#21995)
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>
2023-01-25 20:33:18 +01:00
Mathias Fußenegger
45d511574c
project: "steps to reproduce" in lsp_bug_report #21932 2023-01-23 02:11:53 -08:00
dundargoc
42d5142367
ci: enable CI_BUILD on windows (#21557)
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.
2023-01-18 20:23:46 +01:00
dundargoc
6383e454ab
ci: run each linter once (#21825)
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.
2023-01-16 11:11:48 +01:00
dundargoc
909abfbd87
ci: deduplicate TEST_FILE environment variable (#21667) 2023-01-15 12:25:28 +01:00
zeertzjq
3d49d39cd8
ci(tsan): run functionaltests instead of oldtests (#21744)
With TUI as an external process oldtests no longer involve threads, so
TSAN isn't useful. Meanwhile functionaltests may involve threads.
2023-01-11 14:36:26 +01:00
dundargoc
d89290b453
ci(news): checkout to HEAD commit instead of merge commit (#21679)
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.
2023-01-07 16:51:52 +01:00
Justin M. Keyes
599e1d019a ci: use nvim -l in api-docs job 2023-01-05 17:10:02 +01:00
Justin M. Keyes
7c94bcd2d7 feat(lua)!: execute Lua with "nvim -l"
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_.
2023-01-05 17:10:02 +01:00
Justin M. Keyes
c889f75436 project: rearrange ISSUE_TEMPLATE/bug_report.yml
Problem:
The "system info" fields in the bug report take up a lot of space at the
top. That hides the most relevant part of the bug report. To read the
actual bug, you always have to scroll down.

Solution:
Move the "system info" fields to the bottom.
2023-01-05 10:48:48 +01:00
Justin M. Keyes
63e0e77bd9
project: update feature request template
- Ask for problem/solution format.
- Drop "Vim version" field, it is usually empty and takes up too much space.
2023-01-03 16:30:56 -08:00
dundargoc
ab11157808
ci: add platform:nix label when changing nix files (#21569)
Also update the reviewer list.
2022-12-28 15:19:23 +01:00
zeertzjq
2732759bff
ci(release): properly set multiline output variable (#21560) 2022-12-28 19:48:19 +08:00
dundargoc
788eb65494
ci: remove needs:response label if author responds (#21489)
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.
2022-12-23 12:54:30 +01:00
dundargoc
843ad837c6
docs: add security policy (#17338) 2022-12-22 13:20:19 +01:00
dundargoc
fa6ab48926
ci: bump api-docs runner to ubuntu-latest (#21501)
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.
2022-12-22 13:18:17 +01:00
dundargoc
b1ca49a002 ci: don't use asan_symbolize for the ASAN job
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.
2022-12-21 23:53:45 +01:00
dundargoc
5d5fa886ff
ci: bump stale action version (#21490) 2022-12-21 16:54:46 +01:00
dundargoc
d65684f0c7
ci: bump stylua action to v2 (#21455) 2022-12-17 13:32:20 +01:00
dundargoc
ef95174694
ci: add team reviewers (#21434)
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".
2022-12-15 20:40:30 +01:00
dundargoc
b12bb97fee
docs: fix typos (#21328) 2022-12-12 08:53:07 +08:00
James McCoy
2ecb401f8b
fix(vim-patches): ensure libfuse is installed 2022-12-09 09:56:56 -05:00
dundargoc
73ddb6daf9
ci(news): fetch full history (#21312)
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.
2022-12-06 17:38:24 +01:00
dundargoc
6c285a6e49
ci: create CI job to check if news needs to be updated (#21142)
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.
2022-12-05 11:58:30 +01:00
dundargoc
5c52971f60
ci: use shell script to deduplicate workflow (#21079) 2022-12-05 11:58:13 +01:00
dundargoc
9d8dbd9846
ci: use local action to make make cache keys consistent (#20538)
The advantages of using an action is that it reduces boilerplate and
repetition from the main ci.yml workflow.
2022-12-05 11:57:52 +01:00
dundargoc
adda751407
ci: rename workflow files to be simpler and more consistent (#21253) 2022-12-01 10:55:34 +01:00
dundargoc
ef5ab2bf76
ci: add more reviewers based on label (#21155) 2022-11-30 14:19:11 +01:00
zeertzjq
2b55d09314
ci(labeler): also add filetype label for filetype/detect.lua (#21180) 2022-11-24 15:19:31 +01:00
Vedant
488e99311f
ci(release/winget): correctly set output variable (#21077) 2022-11-17 09:43:45 +01:00
zeertzjq
6aa5520763
ci(windows): set $PSNativeCommandArgumentPassing = 'Legacy' (#21083)
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.
2022-11-17 15:57:59 +08:00
zeertzjq
c404f9b4ba
ci(stale): disable remove-stale-when-updated (#21075)
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.
2022-11-16 16:32:05 +01:00
dundargoc
ce198102bd
ci: add stale bot #20884
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.
2022-11-06 19:05:51 -08:00
dundargoc
c4f3d41d6b
ci: install only necessary dependencies #20970 2022-11-06 17:35:27 -08:00
dundargoc
897186f409
ci: request reviewers when PR is reopened #20972 2022-11-06 16:42:59 -08:00
dundargoc
a966347cab
ci: replace deprecated feature set-output (#20834)
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
2022-11-05 23:22:39 +01:00
dundargoc
9a52a8e1ec
ci: remove ci/build.ps1 (#20891)
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.
2022-11-05 22:57:11 +01:00
dundargoc
27ff59fb07
ci: fix incorrect asan_symbolize name (#20900) 2022-11-05 22:29:44 +01:00
dundargoc
5723b19210
revert: "ci(commitlint): use pull_request_target to avoid "skip ci"" (#20845)
This reverts commit d7e2229b41.

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.
2022-11-05 22:09:50 +01:00
dundargoc
0aba176171
ci: skip tests if build fails (#20908)
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.
2022-11-04 13:26:12 +01:00
dundargoc
6e84a46abc
ci(stylua): explicitly set the version to latest (#20869)
This will silence the warning about needing to pin the version in the
Summary Page.
2022-10-30 11:08:59 +01:00
dundargoc
cf0f53037c
ci(windows): build dependencies with Ninja (#20800)
This will save around a minute of CI time for each run. Also clean up
build.ps1 by removing unnecessary code.
2022-10-30 10:06:13 +01:00
dundargoc
49fbcb5b82
ci: use GHA default clang for asan, tsan jobs #20846
Default is currently clang 14. GHA images are updated at least once per year, so
we don't need to manually install a newer clang version.

Also remove step for installing clang-13 since it's not needed anymore.
2022-10-29 12:11:56 -07:00