Commit Graph

59 Commits

Author SHA1 Message Date
Vedant
488e99311f ci(release/winget): correctly set output variable (#21077) 2022-11-17 09:43:45 +01: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
mliszcz
f2cab9b5b4 ci: use ubuntu docker container to build appimage
Switch back to Ubuntu 18.04 for buliding the appimage. This allows for
using the appimage on older systems that do not provide GLIBC_2.29.

Fixes #19711.
Fixes #20113.
2022-10-07 15:13:40 +02:00
Vedant
618d21fcc9 ci(publish-winget): use versioned tags for action #20417 2022-10-01 10:13:44 -07:00
dundargoc
63aea857a9 ci(release): remove unnecessary matrix strategy
We only have one Windows release job, so the matrix setup isn't needed.
2022-09-30 16:40:44 +02:00
Christian Clason
eb4844b5ed build(macos): restore and test universal build (#20383)
Build tree-sitter parsers for arm64 as well as x86
Check that all created binaries contain both architectures
2022-09-28 11:06:11 +02:00
Vedant
7a091fdfaf ci(publish-winget): fix errors that prevents release (#20232) 2022-09-19 10:48:05 +02:00
Vedant
c126c1f73a ci(release-winget): publish nightly winget prerelease #20209 2022-09-16 15:33:06 -07:00
Vedant
f9a9956837 ci(release): move release-winget steps into release job #19689 2022-08-13 06:34:28 -07:00
Christian Clason
d212dfd676 ci(release): build with standard gcc on Ubuntu
Ubuntu-20.04 ships with GCC 10.3.0, which is enough to avoid #14150
2022-08-09 18:10:18 +02:00
Christian Clason
48241c3b23 ci(release): bump deprecated ubuntu image to 20.04
`ubuntu-18.04` is now deprecated and subject to outages, see
  https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-being-deprecated-and-will-be-removed-by-12-1-22/
2022-08-09 18:10:18 +02:00
Carlo Cabrera
3f2e1c1db9 ci(release): use cpack on macOS #19459
We use `cpack` to generate the release tarballs on Linux. Now that we
don't need to bundle `libintl`, we can do the same on macOS.
2022-07-22 07:08:11 -07:00
kylo252
d15a66d803 ci(windows): config and build before publish step (#19416)
Problem: Windows package step failed (silently).
Solution: Make sure to configure cmake before attempting to build the package target.
2022-07-18 15:18:15 +02:00
kylo252
9f4b19b6d0 ci: refactor build.ps1 #19336
Refactor `build.ps1` into a more modular design

9728f3b558/.github/workflows/ci.yml (L283-L296)

- Separate CI steps.
- Remove unneeded code related to setting up CMake.
- Use parallel/incremental builds.
- Fix github's cache.
- Clear the way for the possibility of replacing this file with a cmake-preset:
  https://github.com/neovim/neovim/pull/19128
2022-07-17 15:07:35 -07:00
Carlo Cabrera
674787feae 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 02:19:45 +08:00
Vedant
9ddb481d88 refactor(ci): cleanup release.yml #19132 2022-06-28 03:40:53 -07:00
Carlo Cabrera
d0644fa9bf 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 00:25:05 +08:00
Christian Clason
c5c5d980a1 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:20:27 +02:00
dundargoc
12f45fd697 ci: bump github actions versions #18616 2022-05-20 20:45:10 -07:00
Justin M. Keyes
b96037e42d ci: remove remnants of gperf #18550
gperf was removed in 36613b888b
yay!
2022-05-12 16:55:27 -07: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
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
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
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
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
5bd7ae5b0f ci(release): enable gh's api debug logs when creating the release
This is intended to help track down why the release is sporadically left
in draft state, rather than being published.

[skip ci]
2022-01-12 07:13:25 -05:00
Dundar Göc
2a12e8ddfd ci: remove outdated brew workaround that isn't needed anymore 2021-12-31 13:09:01 +01:00
Dundar Göc
c5af86b9b9 ci: remove "brew upgrade" from macos jobs
Packages are automatically upgraded on install. This will avoid
upgrading unrelated packages, cutting the macos job time to about a
half.
2021-12-04 23:44:52 +01:00
James McCoy
7bd6f12b3e ci!: remove win32 builds/releases 2021-11-14 08:51:39 -05:00
James McCoy
14716e4619 ci(release): delete nightly/stable tag so release recreates it
Even though the releaes itself gets deleted, if the tag is not, then
creating a new release just re-uses the same tag, even though we're
using “--target <sha>”.

[skip ci]
2021-11-02 07:34:55 -04:00
James McCoy
c819ce1fd4 ci(release): do not fail if stable/nightly release doesn't exist
[skip ci]
2021-10-30 14:02:04 -04:00
James McCoy
eede587b06 ci(release): re-publish "stable" release for versioned releases
[skip ci]
2021-10-30 14:02:04 -04:00
James McCoy
0ce800753e ci(release): use gh cli instead of 3rd-party actions
Closes #15709

[skip ci]
2021-10-30 14:01:47 -04:00
James McCoy
6f965f41df build: use RelWithDebInfo build for nightlies, Release for releases
Unlike Release build type, RelWithDebInfo does not disable asserts.
This helps get better debug info from people brave enough to use the
nightly builds, but shouldn't be used for official releases.

[skip ci]
2021-08-13 23:32:15 -04:00
Oliver Marriott
d1c906a7c6 feat(ci): Add sha256 checksums to release notes 2021-07-02 05:06:21 +10:00
glacambre
04ad196b4e ci: upgrade to gcc-11 on ubuntu-18.04
In https://github.com/neovim/neovim/issues/14150 , investigations showed
that using an older gcc to build the appimage could result in severe
perf issues. This is because older gcc versions happily replace calls to
libc functions with their own, which happen to be less optimized than
their libc counterparts.

We fix this problem by upgrading to gcc-11 on ubuntu-18.04.
2021-06-16 17:54:14 +02:00
James McCoy
04985f69eb fix(ci): Remove gcc@8/gcc@9 homebrew workaround 2021-06-04 11:21:45 -04:00
James McCoy
14c692bc82 ci(gha/release): Bump to ubuntu-18.04
Per https://wiki.ubuntu.com/Releases, 16.04 is no longer under standard
support.  Switch to the next LTS, 18.04, for the next couple years.
2021-05-02 16:27:37 -04:00
James McCoy
62df537543 ci(gha/release): Enable "contents: write" permission to publish release 2021-04-21 00:32:38 -04:00
James McCoy
491708c989 ci(gha/win): Specify valid directory for DEPS_BUILD_DIR 2021-04-21 00:14:51 -04:00
James McCoy
ba758ac553 ci(GHA/release): Delete the release when creating a new nightly
This reverts #13733.  Disabling delete of the release leaves behind a
draft release associated with the previous nightly tag, which is
annoying to cleanup.

In the rare circumstances that the creation of a new nightly fails after
deleting the previous nightly, the job can be re-run or a nightly can be
missing for a day.
2021-03-14 19:53:45 -04:00
James McCoy
dfa01b820f ci(GHA/release): Stop installing gcc-multilib
Recent changes in Xenial have made it uninstallable and we aren't
actually using anything from it for the release builds.
2021-03-14 19:27:50 -04:00
James McCoy
6d67cf8647 ci(gha): brew unlink gcc@8/@9 to fix upgrade issues 2021-01-11 00:01:37 -05:00
James McCoy
0f03b3f3aa ci(gha): brew upgrade before installing 2021-01-10 23:40:30 -05:00
Michał Kiełbowicz
3d41ce90df Do not delete the nightly release 2021-01-10 23:29:34 +01:00
Collided Scope
84d08358b7 ci: Fix typo in release.yml that prevents optimized nightly build (#13671)
Assuming the `CMAKE_BUILD_TYPE` directive is case-sensitive, this *actually* prevents the nightly build from being optimized. Even if it doesn't, the typo causes `:checkhealth` to issue a dummy warning in the Performance section.
2021-01-03 02:19:03 +01:00
James McCoy
0aa6b40599 ci: Add Windows binaries to the release 2020-12-31 00:14:37 -05:00
notomo
b931a554d7 GHA/osx: workaround for brew update error (#13584) 2020-12-22 08:47:46 -05:00
James McCoy
50a76a0e5d Revert "Use oldest macOS version for release workflow" 2020-12-11 13:07:07 -05:00