refactor: pull appimage packaging steps out of github linux release workflow
- pulled appimage packaging steps out of release workflow into new
src-tauri/build-utils/buildAppImage.sh
- cleaned up yarn scripts:
- moved multi platform yarn scripts out of yarn build:tauri:<platform>
into generic yarn build:tauri
- split yarn build:tauri:linux:win32 into separate yarn scripts so it's
clearer what is specific to which platform
- added src-tauri/build-utils/buildAppImage.sh to new yarn build:tauri:linux
yarn script
This is also a good entry point to add flatpak builds in the future.
Part of #5641
This commit is contained in:
parent
4134917a45
commit
7d04d66a0b
@ -152,41 +152,15 @@ jobs:
|
||||
chmod +x "$TAURI_TOOLKIT_PATH/linuxdeploy-x86_64.AppImage"
|
||||
|
||||
make build-tauri
|
||||
# Copy engines and bun to appimage
|
||||
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O ./appimagetool
|
||||
chmod +x ./appimagetool
|
||||
if [ "${{ inputs.channel }}" != "stable" ]; then
|
||||
ls ./src-tauri/target/release/bundle/appimage/
|
||||
cp ./src-tauri/resources/bin/bun ./src-tauri/target/release/bundle/appimage/Jan-${{ inputs.channel }}.AppDir/usr/bin/bun
|
||||
mkdir -p ./src-tauri/target/release/bundle/appimage/Jan-${{ inputs.channel }}.AppDir/usr/lib/Jan-${{ inputs.channel }}/binaries/engines
|
||||
cp -f ./src-tauri/binaries/deps/*.so* ./src-tauri/target/release/bundle/appimage/Jan-${{ inputs.channel }}.AppDir/usr/lib/Jan-${{ inputs.channel }}/binaries/
|
||||
cp -f ./src-tauri/binaries/*.so* ./src-tauri/target/release/bundle/appimage/Jan-${{ inputs.channel }}.AppDir/usr/lib/Jan-${{ inputs.channel }}/binaries/
|
||||
cp -rf ./src-tauri/binaries/engines ./src-tauri/target/release/bundle/appimage/Jan-${{ inputs.channel }}.AppDir/usr/lib/Jan-${{ inputs.channel }}/binaries/
|
||||
APP_IMAGE=./src-tauri/target/release/bundle/appimage/$(ls ./src-tauri/target/release/bundle/appimage/ | grep .AppImage | head -1)
|
||||
echo $APP_IMAGE
|
||||
rm -f $APP_IMAGE
|
||||
./appimagetool ./src-tauri/target/release/bundle/appimage/Jan-${{ inputs.channel }}.AppDir $APP_IMAGE
|
||||
yarn tauri signer sign \
|
||||
--private-key "$TAURI_SIGNING_PRIVATE_KEY" \
|
||||
--password "$TAURI_SIGNING_PRIVATE_KEY_PASSWORD" \
|
||||
"$APP_IMAGE"
|
||||
else
|
||||
cp ./src-tauri/resources/bin/bun ./src-tauri/target/release/bundle/appimage/Jan.AppDir/usr/bin/bun
|
||||
mkdir -p ./src-tauri/target/release/bundle/appimage/Jan.AppDir/usr/lib/Jan/binaries/engines
|
||||
cp -f ./src-tauri/binaries/deps/*.so* ./src-tauri/target/release/bundle/appimage/Jan.AppDir/usr/lib/Jan/binaries/
|
||||
cp -f ./src-tauri/binaries/*.so* ./src-tauri/target/release/bundle/appimage/Jan.AppDir/usr/lib/Jan/binaries/
|
||||
cp -rf ./src-tauri/binaries/engines ./src-tauri/target/release/bundle/appimage/Jan.AppDir/usr/lib/Jan/binaries/
|
||||
APP_IMAGE=./src-tauri/target/release/bundle/appimage/$(ls ./src-tauri/target/release/bundle/appimage/ | grep AppImage | head -1)
|
||||
echo $APP_IMAGE
|
||||
rm -f $APP_IMAGE
|
||||
./appimagetool ./src-tauri/target/release/bundle/appimage/Jan.AppDir $APP_IMAGE
|
||||
yarn tauri signer sign \
|
||||
--private-key "$TAURI_SIGNING_PRIVATE_KEY" \
|
||||
--password "$TAURI_SIGNING_PRIVATE_KEY_PASSWORD" \
|
||||
"$APP_IMAGE"
|
||||
fi
|
||||
|
||||
APP_IMAGE=./src-tauri/target/release/bundle/appimage/$(ls ./src-tauri/target/release/bundle/appimage/ | grep AppImage | head -1)
|
||||
yarn tauri signer sign \
|
||||
--private-key "$TAURI_SIGNING_PRIVATE_KEY" \
|
||||
--password "$TAURI_SIGNING_PRIVATE_KEY_PASSWORD" \
|
||||
"$APP_IMAGE"
|
||||
|
||||
env:
|
||||
RELEASE_CHANNEL: "${{ inputs.channel }}"
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }}
|
||||
POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }}
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -49,4 +49,5 @@ src-tauri/resources/bin
|
||||
# Helper tools
|
||||
.opencode
|
||||
OpenCode.md
|
||||
archive/
|
||||
archive/
|
||||
.cache/
|
||||
2
Makefile
2
Makefile
@ -22,6 +22,8 @@ config-yarn:
|
||||
install-and-build: config-yarn
|
||||
ifeq ($(OS),Windows_NT)
|
||||
echo "skip"
|
||||
else ifeq ($(shell uname -s),Linux)
|
||||
chmod +x src-tauri/build-utils/*
|
||||
endif
|
||||
yarn install
|
||||
yarn build:core
|
||||
|
||||
@ -33,9 +33,10 @@
|
||||
"copy:lib:win32": "cpx \"./lib/windows/*.dll\" \"./src-tauri/resources/lib/\"",
|
||||
"copy:lib:darwin": "mkdir -p \"./src-tauri/resources/lib/\"",
|
||||
"download:bin": "node ./scripts/download-bin.mjs",
|
||||
"build:tauri:linux:win32": "yarn download:bin && yarn install:cortex && yarn build:icon && yarn copy:assets:tauri && yarn tauri build",
|
||||
"build:tauri:darwin": "yarn install:cortex && yarn build:icon && yarn copy:assets:tauri && yarn tauri build --target universal-apple-darwin",
|
||||
"build:tauri": "run-script-os",
|
||||
"build:tauri:win32": "yarn download:bin && yarn tauri build",
|
||||
"build:tauri:linux": "yarn download:bin && yarn tauri build && ./src-tauri/build-utils/buildAppImage.sh",
|
||||
"build:tauri:darwin": "yarn tauri build --target universal-apple-darwin",
|
||||
"build:tauri": "yarn install:cortex && yarn build:icon && yarn copy:assets:tauri && run-script-os",
|
||||
"build:icon": "tauri icon ./src-tauri/icons/icon.png",
|
||||
"build:core": "cd core && yarn build && yarn pack",
|
||||
"build:web": "yarn workspace @janhq/web-app build",
|
||||
|
||||
33
src-tauri/build-utils/buildAppImage.sh
Executable file
33
src-tauri/build-utils/buildAppImage.sh
Executable file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
APPIMAGETOOL="./.cache/build-tools/appimagetool"
|
||||
RELEASE_CHANNEL=${RELEASE_CHANNEL:-"stable"}
|
||||
|
||||
# pull in AppImageTool if it's not pre cached
|
||||
mkdir -p ./.cache/build-tools
|
||||
if [ ! -f "${APPIMAGETOOL}" ]; then
|
||||
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O "${APPIMAGETOOL}"
|
||||
chmod +x "${APPIMAGETOOL}"
|
||||
fi
|
||||
|
||||
if [ "${RELEASE_CHANNEL}" != "stable" ]; then
|
||||
APP_DIR=./src-tauri/target/release/bundle/appimage/Jan-${RELEASE_CHANNEL}.AppDir
|
||||
LIB_DIR=$APP_DIR/usr/lib/Jan-${RELEASE_CHANNEL}/binaries
|
||||
else
|
||||
APP_DIR=./src-tauri/target/release/bundle/appimage/Jan.AppDir
|
||||
LIB_DIR=$APP_DIR/usr/lib/Jan/binaries
|
||||
fi
|
||||
|
||||
# bundle additional resources in the AppDir without pulling in their dependencies
|
||||
cp ./src-tauri/resources/bin/bun $APP_DIR/usr/bin/bun
|
||||
mkdir -p $LIB_DIR/engines
|
||||
cp -f ./src-tauri/binaries/deps/*.so* $LIB_DIR/
|
||||
cp -f ./src-tauri/binaries/*.so* $LIB_DIR/
|
||||
cp -rf ./src-tauri/binaries/engines $LIB_DIR/
|
||||
|
||||
# remove appimage generated by tauri build
|
||||
APP_IMAGE=./src-tauri/target/release/bundle/appimage/$(ls ./src-tauri/target/release/bundle/appimage/ | grep AppImage | head -1)
|
||||
echo $APP_IMAGE
|
||||
rm -f $APP_IMAGE
|
||||
|
||||
# repackage appimage with additional resources
|
||||
"${APPIMAGETOOL}" $APP_DIR $APP_IMAGE
|
||||
Loading…
x
Reference in New Issue
Block a user