Commit Graph

219 Commits

Author SHA1 Message Date
Carlo Cabrera
7eaeb07c1c
ci(release): link gettext include directory
Our previous mangling of gettext broke the `HAVE_WORKING_LIBINTL` test
because it prevented CMake from finding `libintl.h`. Let's fix that by
linking Gettext's `include` directory into `/usr/local` too.
2022-06-29 15:25:54 +08:00
Carlo Cabrera
9077e4e655
ci(release): use system GPerf on macOS #19105
GPerf gets upset at our attempts to build a universal binary.
Conveniently, macOS provides GPerf, so we don't need to build it.

This is a workaround for the 0.7.1 branch which still depends on
gperf, to get the release CI working. In master we don't use gperf anymore.
2022-06-26 08:04:30 -07:00
Carlo Cabrera
059107f424 ci(release): build a universal binary on macOS
After some tweaks to our dep builds, we can now build a universal binary
for macOS by using `CMAKE_OSX_ARCHITECTURES`. So, let's do that. This
requires a number of additional changes:

1. We need to build on macOS 11, since earlier versions do not support
   building universal (M1 + Intel) binaries.
2. We need to provision a universal `libintl`. The linker will look for
   an ARM64 version of this library when linking the `nvim` binary.

While we're here:
1. Link statically to `libintl`. This allows to to avoid having to do
   any install name rewriting or codesigning to package Neovim.
2. Bump the `MACOSX_DEPLOYMENT_TARGET` to `11`. We're already using a
   `libintl` built by Homebrew (through the pre-installed version of
   `gettext`), and that is built for macOS 11.

In order to ensure we link to `libintl.a` instead of `libintl.dylib`, we
have to make sure that CMake can't find the latter. This ideally should
be a matter of doing `brew unlink gettext`. However, CMake is too adept
at finding things that Homebrew has installed (even when not linked), so
we have to do a bit more than that. This appears in the additional step
ensuring static linkage to `libintl`.

We end up breaking some Homebrew-installed software in the process, and
some of these software is called during our build (e.g. curl, git,
wget). To avoid any adverse effects, let's just uninstall them.
2022-06-25 14:14:29 +02:00
Christian Clason
e2915709b0 ci(release): skip CoreServices system library on macOS (#19021)
Problem:
The release script bundles a system library (CoreServices) that was
added in #18294, which leads to errors on M1 since the architecture is
different from the Github runner.

Solution:
Skip CoreServices when bundling the libraries (as was done for the
CoreFoundation library that #18294 replaced with CoreServices).
2022-06-19 16:22:12 +02:00
dundargoc
1677548ebc ci(commitlint): only trigger on PRs to master #18679
This will prevent a failure for backported PRs as they use a different
commit message.
2022-05-22 18:23:42 +02:00
Henry Fraser
96b461a000
refactor(packaging): Windows: improve MSI, remove NSIS #18069
- Removed NSIS installer.
  - Prevents undefined behaviour when two installations are performed to the same directory (NSIS + MSI).
  - Reduced cost of maintaining two installers that do the same thing.
  - Chose Wix MSI due to its better integration with Windows.
- Added Wix patch file to add neovim binaries to the system path during installation.
- Replaced neovim installer icons with better looking versions.
- Renamed neovim installer icons from logo.ico -> neovim.ico for all
  icons to better reflect contents.
2022-04-11 07:58:46 -07:00
James McCoy
dbcb76bd7a
Merge pull request #17888 from dundargoc/ci/remove-reviewers-when-drafting 2022-03-31 15:38:26 -04:00
casswedson
02bac30928 ci: label changes to Makefiles as build
Makefiles are used for builds, so why not label changes to these
files as build
2022-03-27 19:20:15 -05:00
Dundar Göc
da3ef2a538 ci: remove reviewers when drafting or closing a PR 2022-03-27 22:35:26 +02:00
James McCoy
b66cc0f569
Merge pull request #17873 from muniter/jl-apidocs-improvementes
ci(doc): improve missing docs workflow
2022-03-27 16:21:02 -04:00
Javier López
45dbb78747 ci(doc): improve missing docs workflow
1. Add new pattern `runtime/doc/**`. This is a common case were the
   contributor modifies only the help file but the doc gen would discard
   their changes.

2. Add to the output what the changes after running doc gen would be.

[skip ci]
2022-03-26 12:38:36 -05:00
James McCoy
66fff788f2
Merge pull request #17857 from muniter/jl-breaking-change-label
ci: automatic breaking change label
2022-03-26 09:45:54 -04:00
Javier López
ca7d633eaf ci: automatic breaking change label
When the PR title contains the breaking change format apply the
breaking-change label.
2022-03-26 07:18:00 -05:00
dundargoc
61205c1def
chore: fix typos (#17755)
Co-authored-by: Jordan Haine <jhaine@securitycompass.com>
2022-03-25 19:57:59 +01:00
zeertzjq
fc3bff6b7e ci: remove src/nvim/**.lua from docgen pattern
After #17623 this pattern is no longer necessary.
2022-03-24 11:35:24 +08:00
Javier López
b55e65980a fix(ci): provide necessary permissions for calling workflow
Also error on the side of security adding an extra check on the
automatic PR step.
2022-03-21 22:40:24 -05:00
Javier López
9191401025 ci(docs): add a check for PR's to commit their doc changes
Repurpose the api-docs workflow to also run in all PR's but work only as
a check, if the changes in the PR introduce doc changes that are not
committed fail.

[skip ci]
2022-03-18 13:29:55 -05:00
Dundar Göc
815ba835a3 ci: refactor and simplify CI process 2022-03-10 09:21:41 +01:00
Dundar Göc
d15558bfa3 ci(macos): minimize log output from brew update
Also remove perl from brew install to prevent a warning that states it's
already installed.
2022-03-07 23:49:52 +01:00
Dundar Göc
242183585c ci: document the purpose of some non-obvious jobs 2022-03-07 14:18:11 +01:00
Dundar Göc
b842f5491f ci(reviews): update reviewers 2022-03-04 11:28:32 +01:00
James McCoy
97ed3effff
ci(lint): re-add building of third-party 2022-02-27 09:07:11 -05:00
James McCoy
8d8288461a
ci(lint): use bundled luv until system packages are updated 2022-02-27 09:07:11 -05:00
Dundar Göc
80c3d042ed ci: add timeout to all jobs 2022-02-26 16:57:47 +01:00
James McCoy
005a7aa167
Merge pull request #17467 from dundargoc/ci/remove-failing-windows
ci: remove failing windows CI tests
2022-02-25 07:10:29 -05:00
James McCoy
73da7cef7b
Merge pull request #17390 from RenFraser/feature/packaging
ci: improve cpack packaging
2022-02-24 06:46:07 -05:00
Henry Fraser
087aad3dcd ci: improved cpack packaging
Addresses: #12571

- Added the following installers through CMake files:
    - Windows NSIS.
    - Windows MSI.
    - Windows zip.
    - MacOs tarball.
    - Linux tarball.
    - Linux Deb package.
- Tweaked pipeline CPack commands to build using new CMakeLists.txt configuration file.
- Added icons and relevant packaging files.
- Updated notes.md to reflect new installation instructions.

This isn't meant to be the perfect solution, it's simply a first pass at using a
simple packaging system to build Windows installers. A Debian package has also
been added since it's very easy but other packages have been left out due to
limiting the scope. Hopefully we can build further upon this and improve it
over time with code signing, better icons and more user-friendly installation
graphics and so on.
2022-02-24 19:54:44 +10:00
Dundar Göc
07a5a85323 ci: skip ci workflow on only documentation changes 2022-02-21 10:12:07 +01:00
James McCoy
4b3fb4b177
Merge pull request #17469 from jamessan/use-sysdeps-for-lint-ci
Use system dependencies for lint CI
2022-02-20 07:35:35 -05:00
Dundar Göc
4ea8201356 ci: remove success check since it's the default 2022-02-20 13:17:55 +01:00
James McCoy
921162a4b1 ci: bump Windows image to windows-2019
The VS 2019 CMake generator no longer has different generator types for
different architectures.  Now, the architecture is specified via CMake's
`-A` switch.  However, this requires we also propagate
`${CMAKE_GENERATOR_PLATFORM}` to the bundled deps, so they build for the
same architecture as Nvim.
2022-02-20 10:18:45 +01:00
James McCoy
0c4c384ed1
ci(lint): explicity build nvim
“make clint-full” bypasses the normal mechanisms used to communicate
build flags in the CI jobs, so explicitly build nvim before running the
lint jobs.
2022-02-19 20:35:05 -05:00
James McCoy
34cb26011e
ci(lint): build against system deps 2022-02-19 20:35:04 -05:00
James McCoy
8cd4c11494
ci(lint): install deps via apt instead of building from third-party 2022-02-19 20:35:04 -05:00
Dundar Göc
f7803c82d4 ci(labeler): change "tests" to "test" 2022-02-18 20:23:22 +01:00
James McCoy
720bb5844d
Merge pull request #17445 from dundargoc/ci/review/use-checkout 2022-02-18 08:36:45 -05:00
James McCoy
ac480ef6b4
Merge pull request #17404 from dundargoc/ci/put-each-test-in-separate-step
ci: run each test suite in a separate github step
2022-02-18 06:42:32 -05:00
Dundar Göc
40473e55a2 ci(lint): simplify cache key 2022-02-18 11:50:51 +01:00
Dundar Göc
8b92d71b30 ci: run each test suite in a separate github step
This should help combat some of the lagginess when looking at the CI
logs in the browser.
2022-02-18 11:36:30 +01:00
Dundar Göc
1d0e38e42c ci: download reviews.js through checkout instead of wget
This makes testing the workflows much smoother.
2022-02-17 23:30:22 +01:00
Dundar Göc
58a55e3889 ci(lint): remove unnecessary steps 2022-02-17 22:38:54 +01:00
Dundar Göc
b877237612 ci(reviews): move reviews.js to .github/scripts 2022-02-17 14:48:14 +01:00
Dundar Göc
48108975c9 revert: "ci: run functionaltest-lua on drafts as well"
This reverts commit a91a5c1880.
2022-02-15 14:01:06 +01:00
Dundar Göc
5aed2e9f27 ci(labeler): disable sync that interferes with other jobs 2022-02-14 21:16:36 +01:00
zeertzjq
29eabbcd07 ci: use a separate script for request review workflow 2022-02-14 07:47:10 +08:00
James McCoy
c5f5c0d4da
Merge pull request #17392 from zeertzjq/ci-review-open-only
ci: only request review on open non-draft PRs
2022-02-13 08:42:47 -05:00
zeertzjq
1be9549e6b ci: only request review on open non-draft PRs 2022-02-13 19:17:18 +08:00
Dundar Göc
12eca76e2c ci(labeler): add filetype label if any filetype files have changed 2022-02-12 14:32:42 +01:00
James McCoy
e126fbc971
Merge pull request #17376 from dundargoc/ci/reviews/upgrade-to-v6
ci(reviews): upgrade github-script version to v6
2022-02-12 07:09:43 -05:00
Dundar Göc
f052e0bd11 ci(reviews): upgrade github-script version to v6 2022-02-12 11:20:00 +01:00