Compare commits

...

12 Commits

Author SHA1 Message Date
DecDuck
97083db78d fix: allow overwriting and add caching 2025-08-03 15:59:35 +10:00
DecDuck
ef2153611e fix: use full shared object library (ldd) 2025-08-03 15:49:12 +10:00
DecDuck
48ccf638ce fix: final issues with github pipeline 2025-08-03 15:33:29 +10:00
DecDuck
4361798661 fix: final fixes 2025-08-03 15:21:24 +10:00
DecDuck
732df1ddb9 fix: various ci fixes 2025-08-03 15:03:20 +10:00
DecDuck
4389d8beb8 fix: add fix for aarch64 build and start working on github upload 2025-08-03 14:47:29 +10:00
DecDuck
38dd6a2c64 fix: if statement 2025-08-03 14:32:53 +10:00
DecDuck
6038509a0c fix: add fuse dependency 2025-08-03 14:23:08 +10:00
DecDuck
919148c6c2 fix: only use first library result 2025-08-03 14:13:02 +10:00
DecDuck
b3f73d6d1e fix: add permission fixes 2025-08-03 14:02:37 +10:00
DecDuck
41d23730cc fix: use ldconfig to find libraries 2025-08-03 13:50:55 +10:00
DecDuck
d19c5b8e97 fix: fixes to pipeline, script, and .gitignorey 2025-08-03 13:20:26 +10:00
6 changed files with 45 additions and 15 deletions

View File

@@ -25,7 +25,7 @@ jobs:
- platform: 'ubuntu-22.04' # for Tauri v1 you could replace this with ubuntu-20.04.
args: ''
- platform: 'ubuntu-22.04-arm'
args: '--target aarch64-unknown-linux-gnu'
args: ''
- platform: 'windows-latest'
args: ''
@@ -40,6 +40,7 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: 'yarn'
- name: install Rust nightly
uses: dtolnay/rust-toolchain@nightly
@@ -51,7 +52,7 @@ jobs:
if: matrix.platform == 'ubuntu-22.04' || matrix.platform == 'ubuntu-22.04-arm' # This must match the platform value defined above.
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf binutils fuse
# webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2.
@@ -85,24 +86,40 @@ jobs:
echo "CERT_ID=$CERT_ID" >> $GITHUB_ENV
echo "Certificate imported. Using identity: $CERT_ID"
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: install frontend dependencies
run: yarn install # change this to npm, pnpm or bun depending on which one you use.
- uses: tauri-apps/tauri-action@v0
- id: build
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ env.CERT_ID }}
with:
tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version.
tagName: v__VERSION__ # update the below "upload artifacts to GitHub" if this gets updated
releaseName: 'Auto-release v__VERSION__'
releaseBody: 'See the assets to download this version and install. This release was created automatically.'
releaseDraft: false
prerelease: true
args: ${{ matrix.args }}
- name: Bundle Appimage
- name: Bundle AppImage
if: matrix.platform == 'ubuntu-22.04' || matrix.platform == 'ubuntu-22.04-arm'
run:
build_appimage.sh --nobuild
run: |
./build_appimage.sh --nobuild
- name: Upload binaries to release
if: matrix.platform == 'ubuntu-22.04' || matrix.platform == 'ubuntu-22.04-arm'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: build/appimage/*.AppImage
file_glob: true
release_id: ${{ steps.build.outputs.releaseId }}
overwrite: true

11
.gitignore vendored
View File

@@ -26,4 +26,13 @@ dist-ssr
.output
src-tauri/flamegraph.svg
src-tauri/perf*
src-tauri/perf*
build/appimage/*
!build/appimage/drop-app.d
build/appimage/drop-app.d/usr/bin/*
!build/appimage/drop-app.d/usr/bin/.gitkeep
build/appimage/drop-app.d/usr/lib/*
!build/appimage/drop-app.d/usr/lib/.gitkeep

View File

@@ -1,6 +1,6 @@
[Desktop Entry]
Name=drop-oss-app
Comment=The client application for the open-source, self-hosted game distribution platform Drop
Name=Drop Desktop App
Comment=The client application for the open-source, self-hosted game distribution platform Drop.
Exec=AppRun
Icon=drop-oss-app
Type=Application

View File

@@ -1,10 +1,11 @@
#!/bin/sh
set -e
# run this from the root of the git repo to make this work
arch="$(uname -m)"
git_dir="$PWD"
target_dir="$git_dir/src-tauri/target/"
target_dir="$git_dir/src-tauri/target"
appimage_dir="$git_dir/build/appimage"
appdir="$appimage_dir/drop-app.d"
@@ -21,18 +22,21 @@ build() {
rm -f $appdir/usr/bin/* $appdir/usr/lib/*
if [[ ! "$1" == "--nobuild" ]]; then
build
build
fi
# install binaries in the appdir, then the libraries
cp $target_dir/release/drop-app $appdir/usr/bin
for i in $(readelf -d "$target_dir/release/drop-app" |grep NEEDED |cut -d'[' -f2 |tr -d ]);
for lib_name in $(ldd "$target_dir/release/drop-app" | grep '=>' | awk '{ print $(NF-1) }');
do
install -g 1000 -o 1000 -Dm755 "$(ls -L1 /usR/LIB/$i)" $appdir/usr/lib
echo $lib_name
sudo install -g 1000 -o 1000 -Dm755 "$(ls -L1 $lib_name)" $appdir/usr/lib
done
wget -O $appimage_dir/appimagetool https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$arch.AppImage
cd $appimage_dir
chmod u+x appimagetool
appimagetool $appdir
./appimagetool $appdir
ls "$appimage_dir/"