aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
Commit message (Collapse)AuthorAge
...
* feat(docs): replace lua2dox.luaLewis Russell2024-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The documentation flow (`gen_vimdoc.py`) has several issues: - it's not very versatile - depends on doxygen - doesn't work well with Lua code as it requires an awkward filter script to convert it into pseudo-C. - The intermediate XML files and filters makes it too much like a rube goldberg machine. Solution: Re-implement the flow using Lua, LPEG and treesitter. - `gen_vimdoc.py` is now replaced with `gen_vimdoc.lua` and replicates a portion of the logic. - `lua2dox.lua` is gone! - No more XML files. - Doxygen is now longer used and instead we now use: - LPEG for comment parsing (see `scripts/luacats_grammar.lua` and `scripts/cdoc_grammar.lua`). - LPEG for C parsing (see `scripts/cdoc_parser.lua`) - Lua patterns for Lua parsing (see `scripts/luacats_parser.lua`). - Treesitter for Markdown parsing (see `scripts/text_utils.lua`). - The generated `runtime/doc/*.mpack` files have been removed. - `scripts/gen_eval_files.lua` now instead uses `scripts/cdoc_parser.lua` directly. - Text wrapping is implemented in `scripts/text_utils.lua` and appears to produce more consistent results (the main contributer to the diff of this change).
* ci(labeler_issue): split on word boundariescasswedson2024-02-18
| | | | | | | Splitting it on word boundaries rather than only spaces allows for better detection. The issue labeler previously didn't catch titles such as `treesitter: noisy "Invalid node type" error`. Co-authored-by: casswedson <casswedson@users.noreply.github.com>
* ci(release): run universal_macos build on M1 (#27505)Christian Clason2024-02-17
| | | | | | Run the release workflow on macos-14 to use faster M1 runners. Lock the deployment target to the oldest supported version (11.0, due to libuv support) instead of relying on the host OS version.
* 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(release): bump mac runner version to macos-12dundargoc2024-02-06
|
* build: various fixesdundargoc2024-02-01
| | | | | | | - Consistently use the variable CMAKE_BUILD_TYPE to select build type. - Remove broken `doc_html` target. - Remove swap files created by oldtest when cleaning. - Only rerun `lintdoc` if any documentation files has changed.
* build(docs): separate lint job to validate vimdoc #27227Jongwook Choi2024-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Separate the lint job (`make lintdoc`) to validate runtime/doc, it is no longer as a part of functionaltest (help_spec). Build (cmake) and CI: - `make lintdoc`: validate vimdoc files and test-generate HTML docs. CI will run this as a part of the "docs" workflow. - `scripts/lintdoc.lua` is added as an entry point (executable script) for validating vimdoc files. scripts/gen_help_html.lua: - Move the tests for validating docs and generating HTMLs from `help_spec.lua` to `gen_help_html`. Added: - `gen_help_html.run_validate()`. - `gen_help_html.test_gen()`. - Do not hard-code `help_dir` to `build/runtime/doc`, but resolve from `$VIMRUNTIME`. Therefore, the `make lintdoc` job will check doc files on `./runtime/doc`, not on `./build/runtime/doc`. - Add type annotations for gen_help_html.
* ci: update notes.mdJunghyeon Park2024-01-26
| | | | | Change the link to point to INSTALL.md. The contents were moved in https://github.com/neovim/neovim/pull/26533
* ci(s390x): enable CI_BUILDdundargoc2024-01-14
|
* ci: write the correct cherry-picked commit id when backportingJongwook Choi2024-01-01
| | | | | | | | | | | | | Problem: Commits backport-merged to release branches are cherry-picked from the original commits in the PR from a fork repository, NOT the actual commit that are merged to neovim/neovim (HEAD). Therefore the commit reference in the commit message `cherry picked from commit ...` usually refers to a commit that does NOT exist in the repository, given that our preferred way of merging PR (rebasing, squashing, etc.) would rewrite commits. Solution: Turn on new feature 'detect_merge_method' of backport-action workflow.
* ci: add workflow_dispatch to optional.yml workflowdundargoc2023-12-29
| | | | This makes it convenient to test optional.yml on release branch.
* ci: remove winget workflowdundargoc2023-12-26
| | | | | | | | | All releases that aren't directly maintained by us should live in the `neovim/neovim-releases` repository to make it clear that neovim isn't directly responsible for it and to correctly manage expectations that it's provided on a best-effort case. Closes https://github.com/neovim/neovim/issues/26717.
* ci(release): create version tag after "stable" tag (#26671)zeertzjq2023-12-20
|
* ci(s390x): run build & test as a non-root userJames McCoy2023-12-18
|
* ci(s390x): double TEST_TIMEOUT since tests are running via qemuJames McCoy2023-12-18
|
* build: bump minimum cmake version to 3.13dundargoc2023-12-16
| | | | | | | | | | | The benefits are primarily being able to use FetchContent, which allows for a more flexible dependency handling. Other various quality-of-life features such as `-B` and `-S` flags are also included. This also removes broken `--version` generation as it does not work for version 3.10 and 3.11 due to the `JOIN` generator expression. Reference: https://github.com/neovim/neovim/issues/24004
* ci: bump actions/upload-artifact from 3 to 4dependabot[bot]2023-12-15
| | | | Uploads are significantly faster, upwards of 90% improvement in worst case scenarios.
* ci: bump actions/download-artifact from 3 to 4dependabot[bot]2023-12-15
| | | | | | | Notable changes: - Downloads are significantly faster, upwards of 90% improvement in worst case scenarios. - Artifacts can be downloaded from other workflow runs and repositories when supplied with a PAT.
* ci: bump github/codeql-action from 2 to 3dependabot[bot]2023-12-14
| | | | | | Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3)
* ci: fix PR labelerzeertzjq2023-12-10
|
* 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: bump actions/labeler from 4 to 5dundargoc2023-12-08
|
* 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(release): perform a full checkout when building (#26323)zeertzjq2023-11-30
| | | Ref #13471
* ci: fix api-docs workflowdundargoc2023-11-27
| | | | | `git diff-index` only works for tracked files, and unchanged documentation files counts as untracked when shallow cloning.
* ci: bump actions/github-script from 6 to 7 (#26041)dependabot[bot]2023-11-15
| | | | | | | | | | | | | | | Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* ci: skip api-doc workflow on draft PRsdundargoc2023-11-11
| | | | | Checking the documentation generation is mostly useful towards the end of a pull request like with the lintcommit workflow.
* 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.
* ci: don't install unzipdundargoc2023-11-05
| | | | It is no longer needed now that luarocks isn't used.
* 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: use built nvim artifact to generate eval files (#25875)Gregory Anders2023-11-02
| | | | | | | | | | | In cases where the generated files depend on changes to Nvim itself, generating the files with an older version of Nvim will fail because those changes are not present in the older version. For example, if a new option is added then the generator script should be run with the version of Nvim that contains the new option, or else the generation will fail. Co-authored-by: dundargoc <gocdundar@gmail.com>
* ci: add optional CI that can be triggered manuallydundargoc2023-11-01
| | | | | | | | These are meant for expensive or situational tests that may not be suitable to run each time, but can occasionally be useful. Currently only add testing for s390x. The job is enabled by adding the ci-s390x label in github.
* 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: bump korthout/backport-action from 1 to 2dependabot[bot]2023-10-30
|
* 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.
* docs: small fixesdundargoc2023-10-10
| | | | | | Co-authored-by: Wansmer <wansmer@gmail.com> Co-authored-by: Andrew Voynov <andrewvoynov.b@gmail.com> Co-authored-by: David Moberg <david.moberg@mediatek.com>
* 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(codeql): add concurrency to cancel unnecessary jobs earlydundargoc2023-09-10
|
* 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(release): remove unnecessary full clonedundargoc2023-09-09
|
* ci: remove container solution for the linux runnerdundargoc2023-09-09
| | | | | | | | This will fix the failing release job. Ubuntu 18.04 is incompatible with checkout action version 4, which requires glibc 2.28+. This will bump the minimum glibc version required to use the release versions to 2.31. People requring the older releases can find them at https://github.com/neovim/neovim-releases.