ci(release): add linux-arm64 appimage and tarball

Problem: No releases for ARM Linux.

Solution: Provide appimages and tarballs for `linux-arm64`. Rename
x86 releases to `linux-x86_64` for consistency.

(cherry picked from commit c1718d6863)
This commit is contained in:
Christian Clason
2025-01-24 17:17:12 +01:00
committed by Christian Clason
parent 22a327a20e
commit fdcdf560da
7 changed files with 135 additions and 63 deletions

View File

@ -32,26 +32,51 @@ ${NVIM_VERSION}
3. Extract: `tar xzvf nvim-macos-arm64.tar.gz` 3. Extract: `tar xzvf nvim-macos-arm64.tar.gz`
4. Run `./nvim-macos-arm64/bin/nvim` 4. Run `./nvim-macos-arm64/bin/nvim`
### Linux (x64) ### Linux (x86_64)
Minimum glibc version to run these releases is 2.31. People requiring releases Minimum glibc version to run these releases is 2.31. People requiring releases
that work on older glibc versions can find them at that work on older glibc versions can find them at
https://github.com/neovim/neovim-releases. https://github.com/neovim/neovim-releases.
#### AppImage #### AppImage
1. Download **nvim.appimage**
2. Run `chmod u+x nvim.appimage && ./nvim.appimage` 1. Download **nvim-linux-x86_64.appimage**
2. Run `chmod u+x nvim-linux-x86_64.appimage && ./nvim-linux-x86_64.appimage`
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage): - If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
``` ```
./nvim.appimage --appimage-extract ./nvim-linux-x86_64.appimage --appimage-extract
./squashfs-root/usr/bin/nvim
```
> [!NOTE]
> This appimage is also published as `nvim.appimage` for backward compatibility, but scripts should be updated to use the new name.
#### Tarball
1. Download **nvim-linux-x86_64.tar.gz**
2. Extract: `tar xzvf nvim-linux-x86_64.tar.gz`
3. Run `./nvim-linux-x86_64/bin/nvim`
> [!NOTE]
> This tarball is also published as `nvim-linux64.tar.gz` for backward compatibility, but scripts should be updated to use the new name.
### Linux (arm64)
#### AppImage
1. Download **nvim-linux-arm64.appimage**
2. Run `chmod u+x nvim-linux-arm64.appimage && ./nvim-linux-arm64.appimage`
- If your system does not have FUSE you can [extract the appimage](https://github.com/AppImage/AppImageKit/wiki/FUSE#type-2-appimage):
```
./nvim-linux-arm64.appimage --appimage-extract
./squashfs-root/usr/bin/nvim ./squashfs-root/usr/bin/nvim
``` ```
#### Tarball #### Tarball
1. Download **nvim-linux64.tar.gz** 1. Download **nvim-linux-arm64.tar.gz**
2. Extract: `tar xzvf nvim-linux64.tar.gz` 2. Extract: `tar xzvf nvim-linux-arm64.tar.gz`
3. Run `./nvim-linux64/bin/nvim` 3. Run `./nvim-linux-arm64/bin/nvim`
### Other ### Other
@ -60,11 +85,14 @@ https://github.com/neovim/neovim-releases.
## SHA256 Checksums ## SHA256 Checksums
``` ```
${SHA_LINUX_64_TAR} ${SHA_APPIMAGE_ARM64}
${SHA_APP_IMAGE} ${SHA_APPIMAGE_ARM64_ZSYNC}
${SHA_APP_IMAGE_ZSYNC} ${SHA_LINUX_ARM64_TAR}
${SHA_MACOS_X86_64} ${SHA_APPIMAGE_X86_64}
${SHA_APPIMAGE_X86_64_ZSYNC}
${SHA_LINUX_X86_64_TAR}
${SHA_MACOS_ARM64} ${SHA_MACOS_ARM64}
${SHA_WIN_64_ZIP} ${SHA_MACOS_X86_64}
${SHA_WIN_64_MSI} ${SHA_WIN_64_MSI}
${SHA_WIN_64_ZIP}
``` ```

View File

@ -39,10 +39,21 @@ jobs:
printf "appimage_tag=${APPIMAGE_TAG}\n" >> $GITHUB_OUTPUT printf "appimage_tag=${APPIMAGE_TAG}\n" >> $GITHUB_OUTPUT
linux: linux:
runs-on: ubuntu-20.04
needs: setup needs: setup
strategy:
fail-fast: false
matrix:
runner: [ ubuntu-20.04, ubuntu-24.04-arm ]
include:
- runner: ubuntu-20.04
arch: x86_64
cc: gcc-10
- runner: ubuntu-24.04-arm
arch: aarch64
runs-on: ${{ matrix.runner }}
env: env:
CC: gcc-10 CC: ${{ matrix.cc }}
LDAI_NO_APPSTREAM: 1 # skip checking (broken) AppStream metadata for issues
outputs: outputs:
version: ${{ steps.build.outputs.version }} version: ${{ steps.build.outputs.version }}
steps: steps:
@ -52,22 +63,25 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- run: ./.github/scripts/install_deps.sh - run: ./.github/scripts/install_deps.sh
- run: echo "CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}" >> $GITHUB_ENV - run: echo "CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }}" >> $GITHUB_ENV
- if: matrix.arch == 'aarch64'
run: sudo apt-get update && sudo apt-get install -y libfuse2t64
- name: appimage - name: appimage
run: ./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }} run: |
./scripts/genappimage.sh ${{ needs.setup.outputs.appimage_tag }}
- name: tar.gz - name: tar.gz
run: cpack --config build/CPackConfig.cmake -G TGZ run: cpack --config build/CPackConfig.cmake -G TGZ
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: appimage name: appimage-${{ matrix.arch }}
path: | path: |
build/bin/nvim.appimage build/bin/nvim-linux-${{ matrix.arch }}.appimage
build/bin/nvim.appimage.zsync build/bin/nvim-linux-${{ matrix.arch }}.appimage.zsync
retention-days: 1 retention-days: 1
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: nvim-linux64 name: nvim-linux-${{ matrix.arch }}
path: | path: |
build/nvim-linux64.tar.gz build/nvim-linux-${{ matrix.arch }}.tar.gz
retention-days: 1 retention-days: 1
- name: Export version - name: Export version
id: build id: build
@ -75,7 +89,6 @@ jobs:
printf 'version<<END\n' >> $GITHUB_OUTPUT printf 'version<<END\n' >> $GITHUB_OUTPUT
./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT ./build/bin/nvim --version | head -n 3 >> $GITHUB_OUTPUT
printf 'END\n' >> $GITHUB_OUTPUT printf 'END\n' >> $GITHUB_OUTPUT
macos: macos:
needs: setup needs: setup
strategy: strategy:
@ -104,7 +117,6 @@ jobs:
-D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \ -D CMAKE_BUILD_TYPE=${{ needs.setup.outputs.build_type }} \
-D CMAKE_FIND_FRAMEWORK=NEVER -D CMAKE_FIND_FRAMEWORK=NEVER
cmake --build .deps cmake --build .deps
- name: Build neovim - name: Build neovim
run: | run: |
cmake -B build -G Ninja \ cmake -B build -G Ninja \
@ -112,7 +124,6 @@ jobs:
-D ENABLE_LIBINTL=OFF \ -D ENABLE_LIBINTL=OFF \
-D CMAKE_FIND_FRAMEWORK=NEVER -D CMAKE_FIND_FRAMEWORK=NEVER
cmake --build build cmake --build build
- name: Package - name: Package
run: cpack --config build/CPackConfig.cmake run: cpack --config build/CPackConfig.cmake
@ -185,23 +196,45 @@ jobs:
echo 'PRERELEASE=') >> $GITHUB_ENV echo 'PRERELEASE=') >> $GITHUB_ENV
gh release delete stable --yes || true gh release delete stable --yes || true
git push origin :stable || true git push origin :stable || true
- name: Rename aarch64 artifacts
run: |
cd ./nvim-linux-aarch64
mv nvim-linux-aarch64.tar.gz nvim-linux-arm64.tar.gz
cd ../appimage-aarch64
mv nvim-linux-aarch64.appimage nvim-linux-arm64.appimage
mv nvim-linux-aarch64.appimage.zsync nvim-linux-arm64.appimage.zsync
# `sha256sum` outputs <sha> <path>, so we cd into each dir to drop the # `sha256sum` outputs <sha> <path>, so we cd into each dir to drop the
# containing folder from the output. # containing folder from the output.
- name: Generate Linux64 SHA256 checksums - name: Generate Linux x86_64 SHA256 checksums
run: | run: |
cd ./nvim-linux64 cd ./nvim-linux-x86_64
sha256sum nvim-linux64.tar.gz > nvim-linux64.tar.gz.sha256sum sha256sum nvim-linux-x86_64.tar.gz > nvim-linux-x86_64.tar.gz.sha256sum
echo "SHA_LINUX_64_TAR=$(cat nvim-linux64.tar.gz.sha256sum)" >> $GITHUB_ENV echo "SHA_LINUX_X86_64_TAR=$(cat nvim-linux-x86_64.tar.gz.sha256sum)" >> $GITHUB_ENV
- name: Generate App Image SHA256 checksums - name: Generate Linux arm64 SHA256 checksums
run: | run: |
cd ./appimage cd ./nvim-linux-aarch64
sha256sum nvim.appimage > nvim.appimage.sha256sum sha256sum nvim-linux-arm64.tar.gz > nvim-linux-arm64.tar.gz.sha256sum
echo "SHA_APP_IMAGE=$(cat nvim.appimage.sha256sum)" >> $GITHUB_ENV echo "SHA_LINUX_ARM64_TAR=$(cat nvim-linux-arm64.tar.gz.sha256sum)" >> $GITHUB_ENV
- name: Generate App Image Zsync SHA256 checksums - name: Generate AppImage x64_64 SHA256 checksums
run: | run: |
cd ./appimage cd ./appimage-x86_64
sha256sum nvim.appimage.zsync > nvim.appimage.zsync.sha256sum sha256sum nvim-linux-x86_64.appimage > nvim-linux-x86_64.appimage.sha256sum
echo "SHA_APP_IMAGE_ZSYNC=$(cat nvim.appimage.zsync.sha256sum)" >> $GITHUB_ENV echo "SHA_APPIMAGE_X86_64=$(cat nvim-linux-x86_64.appimage.sha256sum)" >> $GITHUB_ENV
- name: Generate AppImage x86_64 Zsync SHA256 checksums
run: |
cd ./appimage-x86_64
sha256sum nvim-linux-x86_64.appimage.zsync > nvim-linux-x86_64.appimage.zsync.sha256sum
echo "SHA_APPIMAGE_X86_64_ZSYNC=$(cat nvim-linux-x86_64.appimage.zsync.sha256sum)" >> $GITHUB_ENV
- name: Generate AppImage x64_64 SHA256 checksums
run: |
cd ./appimage-aarch64
sha256sum nvim-linux-arm64.appimage > nvim-linux-arm64.appimage.sha256sum
echo "SHA_APPIMAGE_ARM64=$(cat nvim-linux-arm64.appimage.sha256sum)" >> $GITHUB_ENV
- name: Generate AppImage arm64 Zsync SHA256 checksums
run: |
cd ./appimage-aarch64
sha256sum nvim-linux-arm64.appimage.zsync > nvim-linux-arm64.appimage.zsync.sha256sum
echo "SHA_APPIMAGE_ARM64_ZSYNC=$(cat nvim-linux-arm64.appimage.zsync.sha256sum)" >> $GITHUB_ENV
- name: Generate macos x86_64 SHA256 checksums - name: Generate macos x86_64 SHA256 checksums
run: | run: |
cd ./nvim-macos-x86_64 cd ./nvim-macos-x86_64
@ -219,6 +252,16 @@ jobs:
echo "SHA_WIN_64_ZIP=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV echo "SHA_WIN_64_ZIP=$(cat nvim-win64.zip.sha256sum)" >> $GITHUB_ENV
sha256sum nvim-win64.msi > nvim-win64.msi.sha256sum sha256sum nvim-win64.msi > nvim-win64.msi.sha256sum
echo "SHA_WIN_64_MSI=$(cat nvim-win64.msi.sha256sum)" >> $GITHUB_ENV echo "SHA_WIN_64_MSI=$(cat nvim-win64.msi.sha256sum)" >> $GITHUB_ENV
- name: Create linux64 aliases # For backward compatibility; remove for 0.12
run: |
cd ./nvim-linux-x86_64
cp nvim-linux-x86_64.tar.gz nvim-linux64.tar.gz
cp nvim-linux-x86_64.tar.gz.sha256sum nvim-linux64.tar.gz.sha256sum
cd ../appimage-x86_64
cp nvim-linux-x86_64.appimage nvim.appimage
cp nvim-linux-x86_64.appimage.sha256sum nvim.appimage.sha256sum
cp nvim-linux-x86_64.appimage.zsync nvim.appimage.zsync
cp nvim-linux-x86_64.appimage.zsync.sha256sum nvim.appimage.zsync.sha256sum
- name: Publish release - name: Publish release
env: env:
NVIM_VERSION: ${{ needs.linux.outputs.version }} NVIM_VERSION: ${{ needs.linux.outputs.version }}
@ -226,6 +269,6 @@ jobs:
run: | run: |
envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md" envsubst < "$GITHUB_WORKSPACE/.github/workflows/notes.md" > "$RUNNER_TEMP/notes.md"
if [ "$TAG_NAME" != "nightly" ]; then if [ "$TAG_NAME" != "nightly" ]; then
gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/* gh release create stable $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-aarch64/* appimage-x86_64/* appimage-aarch64/* nvim-win64/*
fi fi
gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux64/* appimage/* nvim-win64/* gh release create $TAG_NAME $PRERELEASE --notes-file "$RUNNER_TEMP/notes.md" --title "$SUBJECT" --target $GITHUB_SHA nvim-macos-x86_64/* nvim-macos-arm64/* nvim-linux-x86_64/* nvim-linux-aarch64/* appimage-x86_64/* appimage-aarch64/* nvim-win64/*

View File

@ -12,7 +12,7 @@
- To build on Windows, see the [Building on Windows](#building-on-windows) section. _MSVC (Visual Studio) is recommended._ - To build on Windows, see the [Building on Windows](#building-on-windows) section. _MSVC (Visual Studio) is recommended._
4. `sudo make install` 4. `sudo make install`
- Default install location is `/usr/local` - Default install location is `/usr/local`
- On Debian/Ubuntu, instead of installing files directly with `sudo make install`, you can run `cd build && cpack -G DEB && sudo dpkg -i nvim-linux64.deb` to build DEB-package and install it. This should help ensuring the clean removal of installed files. - On Debian/Ubuntu, instead of `sudo make install`, you can try `cd build && cpack -G DEB && sudo dpkg -i nvim-linux-<arch>.deb` (with `<arch>` either `x86_64` or `arm64`) to build DEB-package and install it. This helps ensure clean removal of installed files. Note: This is an unsupported, "best-effort" feature of the Nvim build.
**Notes**: **Notes**:
- From the repository's root directory, running `make` will download and build all the needed dependencies and put the `nvim` executable in `build/bin`. - From the repository's root directory, running `make` will download and build all the needed dependencies and put the `nvim` executable in `build/bin`.

View File

@ -15,9 +15,10 @@ Install from download
Downloads are available on the [Releases](https://github.com/neovim/neovim/releases) page. Downloads are available on the [Releases](https://github.com/neovim/neovim/releases) page.
* Latest [stable release](https://github.com/neovim/neovim/releases/latest) * Latest [stable release](https://github.com/neovim/neovim/releases/latest)
* [macOS x86](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-x86_64.tar.gz) * [macOS x86_64](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-x86_64.tar.gz)
* [macOS arm](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-arm64.tar.gz) * [macOS arm64](https://github.com/neovim/neovim/releases/latest/download/nvim-macos-arm64.tar.gz)
* [Linux](https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz) * [Linux x86_64](https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz)
* [Linux arm64](https://github.com/neovim/neovim/releases/latest/download/nvim-linux-arm64.tar.gz)
* [Windows](https://github.com/neovim/neovim/releases/latest/download/nvim-win64.msi) * [Windows](https://github.com/neovim/neovim/releases/latest/download/nvim-win64.msi)
* Latest [development prerelease](https://github.com/neovim/neovim/releases/nightly) * Latest [development prerelease](https://github.com/neovim/neovim/releases/nightly)
@ -118,24 +119,24 @@ After this step add this to `~/.bashrc`:
### AppImage ("universal" Linux package) ### AppImage ("universal" Linux package)
The [Releases](https://github.com/neovim/neovim/releases) page provides an [AppImage](https://appimage.org) that runs on most Linux systems. No installation is needed, just download `nvim.appimage` and run it. (It might not work if your Linux distribution is more than 4 years old.) The [Releases](https://github.com/neovim/neovim/releases) page provides an [AppImage](https://appimage.org) that runs on most Linux systems. No installation is needed, just download `nvim-linux-x86_64.appimage` and run it. (It might not work if your Linux distribution is more than 4 years old.) The following instructions assume an `x86_64` architecture; on ARM Linux replace with `arm64`.
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-86_64.appimage
chmod u+x nvim.appimage chmod u+x nvim-linux-x86_64.appimage
./nvim.appimage ./nvim-linux-x86_64.appimage
To expose nvim globally: To expose nvim globally:
mkdir -p /opt/nvim mkdir -p /opt/nvim
mv nvim.appimage /opt/nvim/nvim mv nvim-linux-x86_64.appimage /opt/nvim/nvim
And the following line to `~/.bashrc`: And the following line to `~/.bashrc`:
export PATH="$PATH:/opt/nvim/" export PATH="$PATH:/opt/nvim/"
If the `./nvim.appimage` command fails, try: If the `./nvim-linux-x86_64.appimage` command fails, try:
```sh ```sh
./nvim.appimage --appimage-extract ./nvim-linux-x86_64.appimage --appimage-extract
./squashfs-root/AppRun --version ./squashfs-root/AppRun --version
# Optional: exposing nvim globally. # Optional: exposing nvim globally.

View File

@ -49,7 +49,7 @@ elseif(APPLE)
set(CPACK_GENERATOR TGZ) set(CPACK_GENERATOR TGZ)
set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns) set(CPACK_PACKAGE_ICON ${CMAKE_CURRENT_LIST_DIR}/neovim.icns)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(CPACK_PACKAGE_FILE_NAME "nvim-linux64") set(CPACK_PACKAGE_FILE_NAME "nvim-linux-${CMAKE_SYSTEM_PROCESSOR}")
set(CPACK_GENERATOR TGZ DEB) set(CPACK_GENERATOR TGZ DEB)
set(CPACK_DEBIAN_PACKAGE_NAME "Neovim") # required set(CPACK_DEBIAN_PACKAGE_NAME "Neovim") # required
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Neovim.io") # required set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Neovim.io") # required

View File

@ -14,8 +14,8 @@ Supported platforms *supported-platforms*
`System` `Tier` `Versions` `Tested versions` `System` `Tier` `Versions` `Tested versions`
Linux (x86_64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04 Linux (x86_64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04
Linux (arm64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04 Linux (arm64) 1 >= 2.6.32, glibc >= 2.12 Ubuntu 24.04
macOS (Intel) 1 >= 11 macOS 13 macOS (x86_64) 1 >= 11 macOS 13
macOS (M1) 1 >= 11 macOS 15 macOS (arm64) 1 >= 11 macOS 15
Windows 64-bit 1 >= Windows 10 Version 1809 Windows Server 2022 Windows 64-bit 1 >= Windows 10 Version 1809 Windows Server 2022
FreeBSD 1 >= 10 FreeBSD 14 FreeBSD 1 >= 10 FreeBSD 14
OpenBSD 2 >= 7 OpenBSD 2 >= 7

View File

@ -40,16 +40,16 @@ export VERSION
cd "$APP_BUILD_DIR" || exit cd "$APP_BUILD_DIR" || exit
# Only downloads linuxdeploy if the remote file is different from local # Only downloads linuxdeploy if the remote file is different from local
if [ -e "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage ]; then if [ -e "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage ]; then
curl -Lo "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage \ curl -Lo "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \
-z "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage \ -z "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \
https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-"$ARCH".AppImage
else else
curl -Lo "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage \ curl -Lo "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage \
https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-"$ARCH".AppImage
fi fi
chmod +x "$APP_BUILD_DIR"/linuxdeploy-x86_64.AppImage chmod +x "$APP_BUILD_DIR"/linuxdeploy-"$ARCH".AppImage
# metainfo is not packaged automatically by linuxdeploy # metainfo is not packaged automatically by linuxdeploy
mkdir -p "$APP_DIR/usr/share/metainfo/" mkdir -p "$APP_DIR/usr/share/metainfo/"
@ -76,23 +76,23 @@ chmod 755 AppRun
cd "$APP_BUILD_DIR" || exit # Get out of AppImage directory. cd "$APP_BUILD_DIR" || exit # Get out of AppImage directory.
# Set the name of the file generated by appimage # Set the name of the file generated by appimage
export OUTPUT=nvim.appimage export OUTPUT=nvim-linux-"$ARCH".appimage
# If it's a release generate the zsync file # If it's a release generate the zsync file
if [ -n "$TAG" ]; then if [ -n "$TAG" ]; then
export UPDATE_INFORMATION="gh-releases-zsync|neovim|neovim|$TAG|nvim.appimage.zsync" export UPDATE_INFORMATION="gh-releases-zsync|neovim|neovim|$TAG|nvim-linux-$ARCH.appimage.zsync"
fi fi
# Generate AppImage. # Generate AppImage.
# - Expects: $ARCH, $APP, $VERSION env vars # - Expects: $ARCH, $APP, $VERSION env vars
# - Expects: ./$APP.AppDir/ directory # - Expects: ./$APP.AppDir/ directory
# - Produces: ./nvim.appimage # - Produces: ./nvim-linux-$ARCH.appimage
./linuxdeploy-x86_64.AppImage --appdir $APP.AppDir -d "$ROOT_DIR"/runtime/nvim.desktop -i \ ./linuxdeploy-"$ARCH".AppImage --appdir $APP.AppDir -d "$ROOT_DIR"/runtime/nvim.desktop -i \
"$ROOT_DIR/runtime/nvim.png" --output appimage "$ROOT_DIR/runtime/nvim.png" --output appimage
# Moving the final executable to a different folder so it isn't in the # Moving the final executable to a different folder so it isn't in the
# way for a subsequent build. # way for a subsequent build.
mv "$ROOT_DIR"/build/nvim.appimage* "$ROOT_DIR"/build/bin mv "$ROOT_DIR"/build/nvim-linux-"$ARCH".appimage* "$ROOT_DIR"/build/bin
echo 'genappimage.sh: finished' echo 'genappimage.sh: finished'