Commit graph

97 commits

Author SHA1 Message Date
Alexsander Falcucci 2d37b79e3f
ci: retry hdiutil during dmg creation (#3400)
macOS runners occasionally fails due to resource busy while create-dmg
is building the image.

```
Creating disk image...
hdiutil: create failed - Resource busy
Error: Process completed with exit code 1.
```
2026-03-12 19:53:06 +01:00
Alexsander Falcucci a4fad9d89e
versioning: generate nightly versions from git describe (#3399)
we introduce NEOVIDE_BUILD_VERSION in build.rs from `git describe` so tagged builds keep the
package version and non-tagged builds report `nightly-<count>+g<sha>` with `-dirty`
preserved when applicable.

we kinda of follow the neovim pattern for nightly versions since the target users are used to it.

we also add cargo rerun tracking for git metadata and tracked files, and use the generated version
for the CLI `--version` output, startup version logging and `g:neovide_version`
consecutively.

note: bundles will not be affected since they have its own limited versioning scheme.
2026-03-12 17:44:31 +01:00
Alexsander Falcucci 7e6da1d5b2
nightly: don't rebuild the same artifacts every day (#3395)
the old workflow deleted and recreated the nightly release on every scheduled
run, even when the nightly tag already pointed to HEAD. that's just CI churn
and it republishes identical artifacts for no real reason.

we keep the daily schedule, but compare HEAD against the current nightly tag
first and skip the release jobs when they match.

manual dispatch gets a force flag for the rare case where rebuilding the same
commit is actually intended.
2026-03-10 22:08:27 +01:00
Alexsander Falcucci 6dca86689a
add sponsorship link in nightly releases (#3391) 2026-03-09 18:06:01 +01:00
Alexsander Falcucci c99e4ed669
fix: cargo-nextest build without --locked causes impl conflicts (#3341) 2026-01-25 14:07:41 +01:00
Alexsander Falcucci 8978d62f60
ci: automate release artifact creation for windows and macos binaries (#3286) 2025-11-11 22:25:17 +01:00
Alexsander Falcucci 71abe21672
ci: fix and limit mac deployment steps to main branch only (#3283) 2025-11-08 05:14:36 +01:00
Alexsander Falcucci 1350781517
ci: automate nightly cross-platform nightly-release builds (#3280) 2025-11-08 04:22:39 +01:00
fredizzimo 43c3821124
Fix the CI caching (#3227) 2025-09-19 02:28:29 +03:00
fredizzimo 6d66224337
chore: Improve the CI caching behaviour (#3226)
* Setup long path support instead of vendoring the dependencies

This should allow caching to work for windows builds

* Only save the ci cache on master

The PRs and branches will still use it, which should work most of the time since the dependencies
stay mostly the same.

* Let test and clippy share the same cache key

* Fix syntax error
2025-09-19 01:58:44 +03:00
fredizzimo be6b7feaa9
chore: Delete unused release Github action (#3201)
It was only used for producing snap packages, and it also does not work at all at the moment.
2025-09-01 02:26:49 +03:00
fredizzimo 7d3c3fd1d1
chore!: upgrade the Ubuntu runners to 22.04 (#3037) 2025-03-08 22:08:28 +07:00
fredizzimo bea50cfd16
fix: Statically link the msvc runtime when deploying (#3003)
* Statically link the msvc runtime when deploying

* Debug

* Vendor the dependencies

* Install Ninja
2025-02-07 14:05:18 +07:00
Alexsander Falcucci a0204e13bd
ci: action setup vim has been fixed (#2996) 2025-02-02 22:07:21 +01:00
Alexsander Falcucci b3fc4ad853
ci: temporary fix using neovim v0.10.3 in the github action setup 2025-01-29 23:10:00 +01:00
Alexsander Falcucci bf56c972fd
- update funding links for neovide on github and open collective 2025-01-29 20:50:48 +01:00
Alexsander Falcucci 5a6d0756cd
- persist linux dependencies installation step for testing guarantees 2025-01-18 15:49:56 +01:00
Alexsander Falcucci f9e4f8e160
chore: update funding to open_collective (#2880) 2024-11-20 05:26:45 +01:00
Alexsander Falcucci 3e22aaaf5d
feat: create apple code signing and notarization (#2814)
* feat: improve code signing for macos systems

- add code to sign mac app for macos-12
- include signing for aarch64-apple-darwin and x86_64-apple-darwin systems

* feat: streamline macos app notarization and signing	process

- add a step to write apple signing key to a file for macos
- add a step to write app store connect api key to a file for macos
- modify the conditional check for signing the mac app for macos
- add a step to notarize signed macos apps for both architectures

* ci: update github actions matrix for macos build workflow

- update the matrix condition from 'macos' to 'macos-latest' for various steps in the workflow build
- adjust the condition for signing keys based on the updated matrix value

* feat: update workflow job names and sign mac app binaries

- update the workflow job names to differentiate between signing the binary and the .dmg for mac app in different architectures.
- add a new step to sign the mac app binary for aarch64 and x86_64 architecture.

* feat: enhance code security with code signing improvements

- add code signing for mac applications
- implement code signing flags for better security

* ci: refactor github actions workflow configuration

- remove notarization steps for macos `aarch64-apple-darwin` and `x86_64-apple-darwin` devices
- modify the `upload-artifact` step in the workflow

* build: refactor artifact creation and handling in macos workflow

- modify artifact creation in build workflow for macos
- add step to set artifacts for macos only
- update handling of artifacts in the build workflow

* build: improve notarization process for macos files

- update workflow to notarize signed macos files for both architectures
- add notarization step for aarch64-apple-darwin architecture
- add notarization step for x86_64-apple-darwin architecture

* build: implement code signing for mac app binaries

- add signing step for mac app binary root (aarch64-apple-darwin)
- add signing step for mac app binary root (x86_64-apple-darwin)

* build: sign macos binaries with developer id

- update build script to sign the macos binaries with a developer id
- modify the build workflow to include the developer id as a secret
- adjust the macos build script to allow passing a developer id as a parameter

* fix: standardize code formatting across project files

- fix a typo in the secret placeholders
- update the paths in the script to use double quotes for consistency

* ci: refactor github actions for consistent build process

- remove file preparation steps for different operating systems in .github/workflows/build.yml
- rename action for signing mac app binaries in .github/workflows/build.yml
- comment out previous code signing commands in macos-builder/run

* chore: refactor macos code signing and ci config

- comment out the lines related to signing mac app binaries for aarch64 and x86_64-apple-darwin
- update the `prepare artifacts` step in the yaml file

* feat: improve macos deployment process

- add a step to create `neovide.app` for macos
- include commands to generate `neovide.app` for different architectures
- add a step to sign the mac app binary for both architectures
- add a step to sign the `neovide.app` for both architectures
- modify the prepare artifacts step to generate `.dmg` files for mac
- print messages about generating bundle app and dmg in `macos-builder/run`

* fix: streamline macos signing process

- remove redundant command for creating .dmg for aarch64-apple-darwin
- add `staple: true` for notarizing signed macos files

* build: refactor build steps for multi-platform support

- separated the build step into platform-specific jobs for windows, macos, and linux
- included conditions for specific os versions for each platform
- adjusted build commands based on the platform and os requirements

* build: improve platform-specific installation and preparation instructions

- add windows-specific installation steps for dependencies
- add macos-specific installation steps for dependencies
- add linux-specific installation steps for dependencies
- add windows-specific preparation steps for artifacts
- add macos-specific preparation steps for artifacts
- add linux-specific preparation steps for artifacts
- update code comments in `macos-builder/run` file

* refactor: refactor macos build scripts and github actions

- add `continue-on-error: true` to the macos notarization jobs
- remove unnecessary echo statements in the macos builder script

* feat: refine github event handling and macos signing workflow

- update conditional to include a check for the github event repository
- specify the binary input path in the mac signing steps
- add notarisation step for signed macos binaries

* refactor: refactor dmg generation process

- remove redundant if statement for `$generate_dmg`
- initialize signing process for dmg creation

* fix a typo in the github action name

* chore: refactor build scripts and improve environment variable handling

- update the run script command to include environment variables to generate bundle app and dmg

* ci: refactor github action workflows for code signing and notarization

- update github action workflow conditions to check for the main branch instead of a specific repository both for signing keys and code signing
- reorganize signing steps for mac app binaries and .app bundles
- adjust workflow to notarize signed macos apps for both architectures on the main branch
2024-11-06 02:39:14 +01:00
Alexsander Falcucci 71602b3cde
internal: Use macOS-latest runners and bump MACOSX_DEPLOYMENT_TARGET to 10.11 (#2844)
* ci: update macos configurations to use latest version

- add `macosx_deployment_target: 13.0`
- update `macos-12` to `macos-latest` in job configurations
- update `macos-12` to `macos-latest` in job configurations
- update `macos-12` to `macos-latest` in job configurations

* clippy: update function signatures related to panic handling

- add github discussions and discord links to readme.md
- update function signatures related to panic handling in main.rs

* build: refactor build workflow for macos compatibility

- update the `macosx_deployment_target` from `13.0` to `12.0` in the build workflow

* feat: update macos deployment targets and system requirements

- update `macosx_deployment_target` from `12.0` to `10.5` in build.yml
- change `lsminimumsystemversion` from `12.0` to `10.5` in info.plist

* chore: update macos deployment target and job configuration

- update `macosx_deployment_target` from `10.5` to `10.11`
- remove setting `macosx_deployment_target` to `10.11` in the macos job

* refactor: refactor file io operations to improve efficiency

- change the `make install` command to `sudo make install`

* feat: update neovide macos app to support minimum system version `10.11`

- update the minimum system version to `10.11` in info.plist for neovide macos app
2024-10-21 18:15:53 +02:00
Alexsander Falcucci 000b75c0f3
chore: update create-dmg package installation (#2756)
* chore: update homebrew installation script and add upgrade step

- update homebrew installation script and add upgrade step

* chore: update installation instructions for create-dmg package

- comment out the existing command to install homebrew packages
- add steps to download and install create-dmg package using curl and make

* chore: clean up unnecessary code and comments

- remove commented out code for homebrew on macos
2024-08-10 18:16:34 +02:00
Alexsander Falcucci a4453b6e2e
feat: update deployment scripts for macOS .dmg creation (#2700)
* feat: update deployment scripts for macos `dmg` creation and architecture targeting

- change the branches to `feat/dmg` instead of `main`
- add `macos-14` to the list of operating systems
- update the script to use `macos-14` as an available ubuntu release
- update the script to install `create-dmg` for macos runners
- remove the unnecessary `cargo bundle` commands
- update the linux deployment script to use `target/release/neovide` instead of `neovide`
- update the linux deployment script to use `assets/neovide.desktop` instead of `../../assets/neovide.desktop`
- add steps to create `.dmg` files for different architectures on macos
- update the `artifact` variable to include the architecture for macos-created artifacts
- modify the script to use the architecture-specific paths for macos artifacts
- update the `run` script to target a specific architecture based on input parameter

* chore: standardize operating system choices across build matrix

- remove `macos-14` from the list of operating systems in the build matrix
- update the comments to clarify the reason for choosing ubuntu 20.04 for maximum compatibility

* ci: update github workflow branch filter to main branch

- update the branch filter from `branches: feat/dmg` to `branches: main` in the github workflow build configuration.

* ci: update branch name in workflow file to `main`

- update the branch name from `master` to `main` in the workflow file.

* chore: consolidate artifact definitions for macos distributions

- remove redundant artifact definition for x86_64-apple-darwin.dmg
- add artifact definition for aarch64-apple-darwin.dmg

* build: consolidate creation of platform-specific `.dmg` files

- add creation of `.dmg` files for different platforms
- remove creation of `.dmg` files for macos in the linux section

* chore: reorganize file structure for linux deployment

- move the `neovide` executable and used files in linux to a separate directory
- update the linux deployment script to reflect new file locations

* ci: optimize workflow for artifact uploads and macos build process

- add a change to the workflow to only upload artifacts if env.artifact is set
- move the cd $github_workspace command before creating the .dmg file for macos
- remove the unneeded uses: actions/upload-artifact@v4 command
2024-07-12 10:07:39 +03:00
fredizzimo 4b42df9f19
Run Clippy directly instead of reviewdog (#2685)
* Don't use reviewdog

Instead run Clippy as a separate job. Note that failures are ignore for
nightly builds.

* Fix the Github CI cache

* Delete unused code to fix Clippy warnings

* Install cargo bundle and wix through binstall

* Increase CI parallelism
2024-07-07 07:10:50 -07:00
fredizzimo ef3f9a6848
Yet another fix for the artifact download (#2535) 2024-05-11 19:08:53 +03:00
fredizzimo 0eebfbbf75
Fix the CI (#2534)
* Install nexttest with binstall

* Update to download-artifact@v4
2024-05-11 18:47:29 +03:00
fredizzimo dc61958553
chore(CI): Enable full build on pull requests (#2473)
* Convert build.yml to Unix line endings

* Always run the build action on pull requests

* Update actions to support nodejs20

* Use unique paths for test-results

* Delete the snap workflow

* Run Clippy on all configurations, instead of just once

* Enable clippy warnings, not just errors, fail on first clippy error for faster feedback

* Switch to github-check reporter for clippy

* Don't continue on errors on nightly

* Run build before clippy

* Always report clippy failures for the whole file

* Add clippy component

* Enable clippy debug

* Use sarif and review dog directly

* Add --all-targets for clippy

* More consistent job naming

* Run tests before Clippy
2024-04-14 18:25:44 -07:00
fredizzimo 86bb7a0b5f
Update the macOS CI to use macOS 12 instead of 11 (#2108)
macOS 11 is out of support since September 11, 2023.
2023-11-06 14:00:53 -08:00
MultisampledNight c7882681a6
ci: fix release-check-frozen to actually run 2023-09-08 17:15:03 +02:00
fredizzimo a970c99479
Fix AppImage support and Dockerfile for testing (#1941)
* Fix AppImage support and Dockerfile for testing

* Fix the desktop entry name
2023-07-30 19:51:16 +02:00
Turiiya 3fbc937c74
Refine workflows (#1778)
* Refine workflows

* Include matrix.toolchain in job overview for test results

+ Use correct variable for continue-on-error for nightly

* Update test result handling

- Improves performance and structure for test result publishing
- Allows test results as PR comments not only for internal but also
  on fork PRs

* Enroll snap after build workflow
2023-02-27 09:04:34 +01:00
MultisampledNight ee4c6b942c
Restore website CI workflow permissions to default 2023-02-09 10:24:39 +01:00
MultisampledNight a2a616dfad
Try to fix workflows (begin of fun) 2023-02-09 10:16:51 +01:00
MultisampledNight fe68c203b7
Specify architecture in Linux binary archive 2023-02-09 08:50:21 +01:00
MultisampledNight 29155b1ae5
Add pages: write permission to website workflow 2023-02-09 08:45:04 +01:00
Turiiya 0121847223
Renovate workflows (#1755)
* Renovate workflows

* Update workflows

- Structures workflows into jobs that logically build on one another
- Improves OS conditions to better utilizes the matrix
- Uses officials actions cargo cache due to better results while testing
- Removes unnecessary setups of stable toolchains for lint- and release
  frozen actions, as GitHub hosted runners have clippy and rustfmt pre-installed

Formatting changes:
- Generally formats to conform to the dominant formatting used in the
current workflows
- Uniform usage of font cases (in app related workflows):
  - Title case for workflow names
  - Sentence case for step names (uniform with GitHub's defaults in actions)
- Renames `clippy` to `lint-app` as it was not only running clippy
- Renames `lint` to `lint-website`

* Keep `-linux` in artificat name for linux binary

* Commit suggestions for leftovers

Co-authored-by: multisn8 <contact@multisamplednight.com>

* Allow clippy to be more annoying

- will cause a build job to be unsuccessful if clippy is not happy

* Explicitly specify required permissions for CI

Pretty much a rough guess, the GitHub docs[1] aren't exactly clear what
what implies which possibilities. Quite possible that we'll need to
adjust this in future.

[1] https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token

* Fix accidental change of CI platform

---------

Co-authored-by: MultisampledNight <contact@multisamplednight.com>
2023-02-09 08:35:58 +01:00
Matthew Moore 82f63d4131
include assets in linux archive (#1743) 2023-01-27 12:01:43 -05:00
shaunsingh 67a48653b7
Fix appimage build 2022-12-19 07:17:42 -05:00
Ananth Bhaskararaman 40fc33dab1
Add AppImage build (#1612) 2022-11-20 23:16:30 +01:00
MultisampledNight 2c0916e8e2
Add CI workflow for frozen builds on release 2022-11-07 15:01:21 +01:00
Kay Simmons a9fe85c0fc
Remove funding of single individuals 2022-10-08 23:51:14 -07:00
Scott Moore 653fd71f78
Create Windows installer (#1557)
Uses cargo-wix in CI to generate an additional artifact.
2022-10-03 15:26:48 +02:00
MultisampledNight 4eb05e721f
Run website lint also on PRs 2022-08-09 16:54:27 +02:00
MultisampledNight 363af53da4
Fix small typo in PR lint workflow 2022-08-06 14:35:32 +02:00
Hamothy 80b9f2edd7
Transition neovide.dev to use mdbook (#1428)
Co-authored-by: Hamothy <sgoudham@gmail.com>
2022-07-30 03:59:54 -04:00
MultisampledNight 97566881bf
Add CI ignore paths also to snap workflow 2022-07-29 13:53:59 +02:00
MultisampledNight 09dae122d3
Add even more CI ignore paths
This time also with the README and .vscode folder.
2022-07-29 13:41:42 +02:00
MultisampledNight 4c29438339
Run Build-and-Test CI only on code-relevant push
The website folder stays excluded to allow working on the docs without
triggering the whole rebuild pipeline.
2022-07-29 13:32:40 +02:00
kskarthik d17330939a
Strip Linux artifact (#1426) 2022-07-28 20:54:11 +02:00
MultisampledNight 496762030a
Switch to nextest as test runner
Should be faster and require less fiddling with unstable options.
2022-07-23 12:25:38 +02:00
multisn8 2a374addcb
ci: remove unncessary dirs in linux artifact (#1386) 2022-07-08 13:38:23 +02:00