aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/release.yml
diff options
context:
space:
mode:
authorMatthew Toohey2022-04-20 01:43:52 +0000
committerGitHub2022-04-20 01:43:52 +0000
commite452b97cdc7617ec887744b764f1090e440a5983 (patch)
tree41724773456569ad51ed6a0289f33b949595f750 /.github/workflows/release.yml
parentc8cfd0b1a0da071618a9efc71ac5735d6147a0ca (diff)
AppImage (#2089)
* Add desktop entry file Co-authored-by: NNB <n.at@aleeas.com> * Add placeholder icon for AppImage * Add AppImage step to release workflow * Exclude grammar sources from AppImage Co-authored-by: NNB <n.at@aleeas.com>
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r--.github/workflows/release.yml52
1 files changed, 50 insertions, 2 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7c265db8..30f8ccc7 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -147,16 +147,60 @@ jobs:
aarch64-linux-gnu-strip \
/target/${{ matrix.target }}/release/hx
- - name: Build archive
+ - name: Build AppImage
shell: bash
+ if: matrix.build == 'x86_64-linux'
run: |
mkdir dist
+
+ name=dev
+ if [[ $GITHUB_REF == refs/tags/* ]]; then
+ name=${GITHUB_REF:10}
+ fi
+
+ export VERSION="$name"
+ export ARCH=x86_64
+ export APP=helix
+ export OUTPUT="helix-$VERSION-$ARCH.AppImage"
+ export UPDATE_INFORMATION="gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|helix|latest|$APP-*-$ARCH.AppImage.zsync"
+
+ mkdir -p "$APP.AppDir"/usr/{bin,lib/helix}
+
+ cp "target/${{ matrix.target }}/release/hx" "$APP.AppDir/usr/bin/hx"
+ rm -rf runtime/grammars/sources
+ cp -r runtime "$APP.AppDir/usr/lib/helix/runtime"
+
+ cat << 'EOF' > "$APP.AppDir/AppRun"
+ #!/bin/sh
+
+ APPDIR="$(dirname "$(readlink -f "${0}")")"
+ HELIX_RUNTIME="$APPDIR/usr/lib/helix/runtime" exec "$APPDIR/usr/bin/hx" "$@"
+ EOF
+ chmod 755 "$APP.AppDir/AppRun"
+
+ curl -Lo linuxdeploy-x86_64.AppImage \
+ https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
+ chmod +x linuxdeploy-x86_64.AppImage
+
+ ./linuxdeploy-x86_64.AppImage \
+ --appdir "$APP.AppDir" -d contrib/Helix.desktop \
+ -i contrib/helix.png --output appimage
+
+ mv "$APP-$VERSION-$ARCH.AppImage" \
+ "$APP-$VERSION-$ARCH.AppImage.zsync" dist
+
+ - name: Build archive
+ shell: bash
+ run: |
+ mkdir -p dist
if [ "${{ matrix.os }}" = "windows-2019" ]; then
cp "target/${{ matrix.target }}/release/hx.exe" "dist/"
else
cp "target/${{ matrix.target }}/release/hx" "dist/"
fi
- rm -rf runtime/grammars/sources
+ if [ -d runtime/grammars/sources ]; then
+ rm -rf runtime/grammars/sources
+ fi
cp -r runtime dist
- uses: actions/upload-artifact@v3
@@ -212,6 +256,10 @@ jobs:
mv bins-$platform/hx$exe $pkgname
chmod +x $pkgname/hx$exe
+ if [[ "$platform" = "x86_64-linux" ]]; then
+ mv bins-$platform/helix-*.AppImage* dist/
+ fi
+
if [ "$exe" = "" ]; then
tar cJf dist/$pkgname.tar.xz $pkgname
else