From a5718566bbfc8fd1f4c4ebbab0e76147deddd6de Mon Sep 17 00:00:00 2001 From: Alvinosh Date: Mon, 13 May 2024 16:45:49 +0200 Subject: [PATCH] added build --- .github/workflows/build.yml | 81 ++++++++++++++++++++++ src-tauri/tauri.conf.json | 132 ++++++++++++++++++------------------ 2 files changed, 147 insertions(+), 66 deletions(-) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..7a31709 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,81 @@ +name: Build + +env: + CARGO_TERM_COLOR: always + +on: [push] + +jobs: + build-tauri: + permissions: + contents: write + strategy: + fail-fast: false + matrix: + settings: + - platform: 'macos-latest' # for Arm based macs (M1 and above). + args: '--target universal-apple-darwin' + - platform: 'ubuntu-22.04' # for Tauri v1 you could replace this with ubuntu-20.04. + args: '' + - platform: 'windows-latest' + args: '' + + runs-on: ${{ matrix.settings.platform }} + steps: + - uses: actions/checkout@v4 + + - name: install dependencies (ubuntu only) + if: matrix.settings.platform == 'ubuntu-22.04' # This must match the platform value defined above. + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + # webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2. + # You can remove the one that doesn't apply to your app to speed up the workflow a bit. + + - name: setup node + uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: 'yarn' # Set this to npm, yarn or pnpm. + + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable + with: + # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. + targets: ${{ matrix.settings.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} + + - name: Rust cache + uses: swatinem/rust-cache@v2 + with: + workspaces: './src-tauri -> target' + + - name: install frontend dependencies + # If you don't have `beforeBuildCommand` configured you may want to build your frontend here too. + run: npm install # change this to npm or pnpm depending on which one you use. + + - uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + releaseBody: 'See the assets to download this version and install.' + releaseDraft: true + prerelease: false + args: ${{ matrix.settings.args }} + + - name: Upload Windows Build + uses: actions/upload-artifact@v4 + if: matrix.settings.platform == 'windows-latest' + with: + name: ark-gallery.zip + path: ./src-tauri/target/release/bundle/ + - name: Upload Linux AppImage + if: matrix.settings.platform == 'ubuntu-22.04' + uses: actions/upload-artifact@v4 + with: + name: ark-gallery.AppImage + path: ./src-tauri/target/release/bundle/appimage/ark-gallery_*_amd64.AppImage + - name: Upload MacOS App + if: matrix.settings.platform == 'macos-latest' + uses: actions/upload-artifact@v4 + with: + name: ark-gallery.app + path: ./src-tauri/target/release/bundle/macos/ diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 46be2ec..99705ae 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,68 +1,68 @@ { - "build": { - "beforeBuildCommand": "npm run build", - "beforeDevCommand": "npm run dev", - "devPath": "http://localhost:5173", - "distDir": "../public" - }, - "package": { - "productName": "ark-drop", - "version": "0.1.0" - }, - "tauri": { - "allowlist": { - "all": false, - "dialog": { - "open": true - } - }, - "bundle": { - "active": true, - "category": "DeveloperTool", - "copyright": "", - "deb": { - "depends": [] - }, - "externalBin": [], - "icon": [ - "icons/32x32.png", - "icons/128x128.png", - "icons/128x128@2x.png", - "icons/icon.icns", - "icons/icon.ico" - ], - "identifier": "com.tauri.dev", - "longDescription": "", - "macOS": { - "entitlements": null, - "exceptionDomain": "", - "frameworks": [], - "providerShortName": null, - "signingIdentity": null - }, - "resources": [], - "shortDescription": "", - "targets": "all", - "windows": { - "certificateThumbprint": null, - "digestAlgorithm": "sha256", - "timestampUrl": "" - } - }, - "security": { - "csp": null - }, - "updater": { - "active": false - }, - "windows": [ - { - "fullscreen": false, - "height": 600, - "resizable": true, - "title": "ARK Drop", - "width": 800 - } - ] - } + "build": { + "beforeBuildCommand": "npm run build", + "beforeDevCommand": "npm run dev", + "devPath": "http://localhost:5173", + "distDir": "../build" + }, + "package": { + "productName": "ark-drop", + "version": "0.1.0" + }, + "tauri": { + "allowlist": { + "all": false, + "dialog": { + "open": true + } + }, + "bundle": { + "active": true, + "category": "DeveloperTool", + "copyright": "", + "deb": { + "depends": [] + }, + "externalBin": [], + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "identifier": "dev.ark-builders.drop", + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": "all", + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "security": { + "csp": null + }, + "updater": { + "active": false + }, + "windows": [ + { + "fullscreen": false, + "height": 600, + "resizable": true, + "title": "ARK Drop", + "width": 800 + } + ] + } }