From e874cccfac40acf30f64a9c4ff92382056af8e45 Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 12:02:28 +0530 Subject: [PATCH 01/11] refac: add reusable worfklow --- .../workflows/app-build-debug-artifacts.yml | 111 ++----------- .../workflows/app-build-release-artifacts.yml | 117 ++------------ .../workflows/app-build-release-publish.yml | 121 ++------------ .github/workflows/app-build.yml | 151 ++++++++++++++++++ 4 files changed, 185 insertions(+), 315 deletions(-) create mode 100644 .github/workflows/app-build.yml diff --git a/.github/workflows/app-build-debug-artifacts.yml b/.github/workflows/app-build-debug-artifacts.yml index 4127fc9..5cef374 100644 --- a/.github/workflows/app-build-debug-artifacts.yml +++ b/.github/workflows/app-build-debug-artifacts.yml @@ -5,7 +5,6 @@ on: jobs: build-app-debug: - environment: production permissions: contents: write strategy: @@ -13,104 +12,26 @@ jobs: matrix: include: - platform: 'macos-latest' # for Arm based macs (M1 and above). - args: '--target aarch64-apple-darwin --debug' + args: '--target aarch64-apple-darwin' - platform: 'macos-latest' # for Intel based macs. - args: '--target x86_64-apple-darwin --debug' + args: '--target x86_64-apple-darwin' - platform: 'ubuntu-22.04' - args: '--debug' + args: '' - platform: 'ubuntu-22.04-arm' - args: '--debug' + args: '' - platform: 'windows-2022' - args: '--debug' + args: '' - platform: 'windows-11-arm' - args: '--debug' + args: '' - platform: 'ubuntu-22.04' - args: '--apk --split-per-abi --target aarch64 --target armv7 --debug' + args: '--apk --split-per-abi --target aarch64 --target armv7' mobile: 'android' - runs-on: ${{ matrix.platform }} - steps: - # ------------ Git Clone ---------------- - - uses: actions/checkout@v6 - - # ------------ Desktop OS ---------------- - - name: Free up disk space on Linux runners - uses: mathio/gha-cleanup@v1 - if: startsWith(matrix.platform, 'ubuntu') - with: - remove-browsers: true - verbose: true - - name: Fix Android Directory Permissions - if: startsWith(matrix.platform, 'ubuntu') - run: | - sudo mkdir -p /usr/local/lib/android - sudo chown -R $USER:$USER /usr/local/lib/android - - name: install dependencies (ubuntu only) - if: startsWith(matrix.platform, 'ubuntu') - run: | - sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev xdg-utils - - # ------------- Node ------------- - - name: setup node - uses: actions/setup-node@v4 - with: - node-version: lts/* - - name: setup bun - uses: oven-sh/setup-bun@v2 - - name: install frontend dependencies - run: bun i - - # ------------- Rust ------------- - - name: install Rust stable (desktop) - if: matrix.mobile == '' - uses: dtolnay/rust-toolchain@stable - with: - targets: aarch64-apple-darwin,x86_64-apple-darwin - - name: install Rust stable (android) - if: matrix.mobile == 'android' - uses: dtolnay/rust-toolchain@stable - with: - targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - workspaces: apps/app/src-tauri/ -> target - - # ------------- Android ------------- - - name: Set up JDK - if: matrix.mobile == 'android' - uses: actions/setup-java@v5 - with: - java-version: '17' # Maybe 17 - distribution: 'temurin' - - name: Setup Android SDK - if: matrix.mobile == 'android' - uses: android-actions/setup-android@v3 - - name: Setup Android NDK - if: matrix.mobile == 'android' - uses: nttld/setup-ndk@v1 - id: setup-ndk - with: - ndk-version: r29 - link-to-sdk: true - - name: setup Android signing - if: matrix.mobile == 'android' - run: | - cd apps/app/src-tauri/gen/android - echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties - echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties - base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks - echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties - - # ---------------- Tauri ----------------- - - name: Build Tauri Project - uses: tauri-apps/tauri-action@8236c82510173ef930d644f38790c4cf3fd43cf2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} - with: - projectPath: 'apps/app' - uploadWorkflowArtifacts: true - workflowArtifactNamePattern: '[name]-v[version]-[platform]-[arch]-[mode][ext]' - args: ${{ matrix.args }} - mobile: ${{ matrix.mobile }} + uses: ./.github/workflows/app-build.yml + with: + build-mode: 'debug' + publish: false + environment: 'production' + platform: ${{ matrix.platform }} + args: ${{ matrix.args }} + mobile: ${{ matrix.mobile || '' }} + secrets: inherit diff --git a/.github/workflows/app-build-release-artifacts.yml b/.github/workflows/app-build-release-artifacts.yml index 8929565..b29a463 100644 --- a/.github/workflows/app-build-release-artifacts.yml +++ b/.github/workflows/app-build-release-artifacts.yml @@ -18,7 +18,6 @@ on: jobs: build-app-release: - environment: production permissions: contents: write strategy: @@ -40,110 +39,12 @@ jobs: - platform: 'ubuntu-22.04' args: '--apk --split-per-abi --target aarch64 --target armv7' mobile: 'android' - runs-on: ${{ matrix.platform }} - steps: - - uses: actions/checkout@v6 - - # ------------- Node & Frontend Cache ------------- - - name: setup node - uses: actions/setup-node@v4 - with: - node-version: lts/* - - - name: setup bun - uses: oven-sh/setup-bun@v2 - - # NEW: Cache Bun dependencies - - name: Cache Bun dependencies - uses: actions/cache@v4 - with: - path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }} - restore-keys: | - ${{ runner.os }}-bun- - - # Case 1: Run bun for everything EXCEPT Windows ARM - - name: install frontend dependencies - run: bun i - - # ------------- Rust & Cargo Cache ------------- - - name: install Rust stable (desktop) - if: matrix.mobile == '' - uses: dtolnay/rust-toolchain@stable - with: - targets: aarch64-apple-darwin,x86_64-apple-darwin - - - name: install Rust stable (android) - if: matrix.mobile == 'android' - uses: dtolnay/rust-toolchain@stable - with: - targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android - - # MODIFIED: Fixed workspaces syntax and ensured shared key matches matrix - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - # Point this to the folder containing Cargo.toml. - # The action automatically handles the 'target' directory. - workspaces: apps/app/src-tauri - # Adding a key based on the job matrix helps prevent cache conflicts between platforms - key: ${{ matrix.platform }}-${{ matrix.args }} - - # ------------- Android ------------- - - name: Set up JDK - if: matrix.mobile == 'android' - uses: actions/setup-java@v5 - with: - java-version: '17' - distribution: 'temurin' - - # NEW: Cache Gradle for Android - - name: Cache Gradle - if: matrix.mobile == 'android' - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - - name: Setup Android SDK - if: matrix.mobile == 'android' - uses: android-actions/setup-android@v3 - - name: Setup Android NDK - if: matrix.mobile == 'android' - uses: nttld/setup-ndk@v1 - id: setup-ndk - with: - ndk-version: r29 - link-to-sdk: true - - name: setup Android signing - if: matrix.mobile == 'android' - run: | - cd apps/app/src-tauri/gen/android - echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties - echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties - base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks - echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties - - # ------------ Desktop OS ---------------- - - name: install dependencies (ubuntu only) - if: startsWith(matrix.platform, 'ubuntu') - run: | - sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev xdg-utils - - # ---------------- Tauri ----------------- - - name: Build Tauri Project - uses: tauri-apps/tauri-action@8236c82510173ef930d644f38790c4cf3fd43cf2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} - with: - projectPath: 'apps/app' - uploadWorkflowArtifacts: true - workflowArtifactNamePattern: '[name]-v[version]-[platform]-[arch]-[mode][ext]' - args: ${{ matrix.args }} - mobile: ${{ matrix.mobile }} + uses: ./.github/workflows/app-build.yml + with: + build-mode: 'release' + publish: false + environment: 'production' + platform: ${{ matrix.platform }} + args: ${{ matrix.args }} + mobile: ${{ matrix.mobile || '' }} + secrets: inherit diff --git a/.github/workflows/app-build-release-publish.yml b/.github/workflows/app-build-release-publish.yml index 37ca95d..99372f2 100644 --- a/.github/workflows/app-build-release-publish.yml +++ b/.github/workflows/app-build-release-publish.yml @@ -17,7 +17,6 @@ on: jobs: publish-app-release: - environment: production permissions: contents: write strategy: @@ -39,114 +38,12 @@ jobs: - platform: 'ubuntu-22.04' args: '--apk --split-per-abi --target aarch64 --target armv7' mobile: 'android' - runs-on: ${{ matrix.platform }} - steps: - - uses: actions/checkout@v6 - - # ------------- Node & Frontend Cache ------------- - - name: setup node - uses: actions/setup-node@v4 - with: - node-version: lts/* - - - name: setup bun - uses: oven-sh/setup-bun@v2 - - # NEW: Cache Bun dependencies - - name: Cache Bun dependencies - uses: actions/cache@v4 - with: - path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }} - restore-keys: | - ${{ runner.os }}-bun- - - # Case 1: Run bun for everything EXCEPT Windows ARM - - name: install frontend dependencies - run: bun i - - # ------------- Rust & Cargo Cache ------------- - - name: install Rust stable (desktop) - if: matrix.mobile == '' - uses: dtolnay/rust-toolchain@stable - with: - targets: aarch64-apple-darwin,x86_64-apple-darwin - - - name: install Rust stable (android) - if: matrix.mobile == 'android' - uses: dtolnay/rust-toolchain@stable - with: - targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android - - # MODIFIED: Fixed workspaces syntax and ensured shared key matches matrix - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - # Point this to the folder containing Cargo.toml. - # The action automatically handles the 'target' directory. - workspaces: apps/app/src-tauri - # Adding a key based on the job matrix helps prevent cache conflicts between platforms - key: ${{ matrix.platform }}-${{ matrix.args }} - - # ------------- Android ------------- - - name: Set up JDK - if: matrix.mobile == 'android' - uses: actions/setup-java@v5 - with: - java-version: '17' - distribution: 'temurin' - - # NEW: Cache Gradle for Android - - name: Cache Gradle - if: matrix.mobile == 'android' - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - - name: Setup Android SDK - if: matrix.mobile == 'android' - uses: android-actions/setup-android@v3 - - name: Setup Android NDK - if: matrix.mobile == 'android' - uses: nttld/setup-ndk@v1 - id: setup-ndk - with: - ndk-version: r29 - link-to-sdk: true - - name: setup Android signing - if: matrix.mobile == 'android' - run: | - cd apps/app/src-tauri/gen/android - echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties - echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties - base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks - echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties - - # ------------ Desktop OS ---------------- - - name: install dependencies (ubuntu only) - if: startsWith(matrix.platform, 'ubuntu') - run: | - sudo apt-get update - sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev xdg-utils - - # ---------------- Tauri ----------------- - - name: Build Tauri Project - uses: tauri-apps/tauri-action@8236c82510173ef930d644f38790c4cf3fd43cf2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} - with: - projectPath: 'apps/app' - tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version. - releaseName: 'Cherit v__VERSION__' - releaseAssetNamePattern: '[name]-[platform]-[arch][ext]' - releaseBody: 'Download from Website : [Download](https://keshav.is-a.dev/Cherit/download/)' - releaseDraft: true - prerelease: false - args: ${{ matrix.args }} - mobile: ${{ matrix.mobile }} + uses: ./.github/workflows/app-build.yml + with: + build-mode: 'release' + publish: true + environment: 'production' + platform: ${{ matrix.platform }} + args: ${{ matrix.args }} + mobile: ${{ matrix.mobile || '' }} + secrets: inherit diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml new file mode 100644 index 0000000..c7dd0a5 --- /dev/null +++ b/.github/workflows/app-build.yml @@ -0,0 +1,151 @@ +name: 'app-build' + +on: + workflow_call: + inputs: + build-mode: + required: true + type: string + publish: + required: false + type: boolean + default: false + platform: + required: true + type: string + mobile: + required: false + type: string + default: '' + args: + required: false + type: string + default: '' + environment: + required: false + type: string + default: '' + +jobs: + build: + runs-on: ${{ inputs.platform }} + environment: ${{ inputs.environment || '' }} + steps: + - uses: actions/checkout@v6 + + - name: Free up disk space on Linux runners + uses: mathio/gha-cleanup@v1 + if: startsWith(inputs.platform, 'ubuntu') + with: + remove-browsers: true + verbose: true + + - name: Fix Android Directory Permissions + if: startsWith(inputs.platform, 'ubuntu') + run: | + sudo mkdir -p /usr/local/lib/android + sudo chown -R $USER:$USER /usr/local/lib/android + + - name: install dependencies (ubuntu only) + if: startsWith(inputs.platform, 'ubuntu') + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev xdg-utils + + # ------------- Node & Frontend Cache ------------- + - name: setup node + uses: actions/setup-node@v4 + with: + node-version: lts/* + + - name: setup bun + uses: oven-sh/setup-bun@v2 + + - name: Cache Bun dependencies + uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb', '**/bun.lock') }} + restore-keys: | + ${{ runner.os }}-bun- + + - name: install frontend dependencies + run: bun i + + # ------------- Rust & Cargo Cache ------------- + - name: install Rust stable (desktop) + if: inputs.mobile == '' + uses: dtolnay/rust-toolchain@stable + with: + targets: aarch64-apple-darwin,x86_64-apple-darwin + + - name: install Rust stable (android) + if: inputs.mobile == 'android' + uses: dtolnay/rust-toolchain@stable + with: + targets: aarch64-linux-android,armv7-linux-androideabi,i686-linux-android,x86_64-linux-android + + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + workspaces: apps/app/src-tauri + key: ${{ inputs.platform }}-${{ inputs.args }} + + # ------------- Android ------------- + - name: Set up JDK + if: inputs.mobile == 'android' + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + + - name: Cache Gradle + if: inputs.mobile == 'android' + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Setup Android SDK + if: inputs.mobile == 'android' + uses: android-actions/setup-android@v3 + + - name: Setup Android NDK + if: inputs.mobile == 'android' + uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r29 + link-to-sdk: true + + - name: setup Android signing + if: inputs.mobile == 'android' + run: | + cd apps/app/src-tauri/gen/android + echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties + echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties + base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks + echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties + + # ---------------- Tauri ----------------- + - name: Build Tauri Project + uses: tauri-apps/tauri-action@8236c82510173ef930d644f38790c4cf3fd43cf2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} + with: + projectPath: 'apps/app' + uploadWorkflowArtifacts: ${{ inputs.publish != true }} + workflowArtifactNamePattern: '[name]-v[version]-[platform]-[arch]-[mode][ext]' + tagName: "${{ inputs.publish == true && 'v__VERSION__' || '' }}" + releaseName: "${{ inputs.publish == true && 'Cherit v__VERSION__' || '' }}" + releaseAssetNamePattern: '[name]-[platform]-[arch][ext]' + releaseBody: "${{ inputs.publish == true && 'Download from Website : [Download](https://keshav.is-a.dev/Cherit/download/)' || '' }}" + releaseDraft: ${{ inputs.publish == true }} + prerelease: false + args: ${{ inputs.args }}${{ inputs.build-mode == 'debug' && ' --debug' || '' }} + mobile: ${{ inputs.mobile }} From 23dae2efdef41813881f05f02865498f90b1a7cd Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 13:06:10 +0530 Subject: [PATCH 02/11] feat: make ubuntu cleaner only run on debug builds --- .github/workflows/app-build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index c7dd0a5..bfe8393 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -4,6 +4,7 @@ on: workflow_call: inputs: build-mode: + description: Can only be set to 'release' or 'debug' required: true type: string publish: @@ -35,7 +36,7 @@ jobs: - name: Free up disk space on Linux runners uses: mathio/gha-cleanup@v1 - if: startsWith(inputs.platform, 'ubuntu') + if: startsWith(inputs.platform, 'ubuntu') && inputs.build-mode == 'debug' with: remove-browsers: true verbose: true From a2b1fe1814fe78d729c475bea9c179209d9d5200 Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 13:18:19 +0530 Subject: [PATCH 03/11] feat: use the mold linker --- .github/workflows/app-build.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index bfe8393..6b55002 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -34,6 +34,7 @@ jobs: steps: - uses: actions/checkout@v6 + # ------------ Desktop OS ---------------- - name: Free up disk space on Linux runners uses: mathio/gha-cleanup@v1 if: startsWith(inputs.platform, 'ubuntu') && inputs.build-mode == 'debug' @@ -92,6 +93,15 @@ jobs: workspaces: apps/app/src-tauri key: ${{ inputs.platform }}-${{ inputs.args }} + - name: setup mold + if: startsWith(matrix.platform, 'ubuntu') + uses: rui314/setup-mold@v1 + + - name: setup_windows_linker + if: startsWith(matrix.platform, 'windows') + shell: bash + run: echo "RUSTFLAGS=-C linker=rust-lld" >> $GITHUB_ENV + # ------------- Android ------------- - name: Set up JDK if: inputs.mobile == 'android' From c4991fa9d734f7194782fd45725bb4a46327d57a Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 16:30:19 +0530 Subject: [PATCH 04/11] fix: donot install webkit dependencies in androdin build --- .github/workflows/app-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index 6b55002..caa4553 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -49,7 +49,7 @@ jobs: sudo chown -R $USER:$USER /usr/local/lib/android - name: install dependencies (ubuntu only) - if: startsWith(inputs.platform, 'ubuntu') + if: startsWith(inputs.platform, 'ubuntu') && inputs.mobile != 'android' run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev xdg-utils From 73a8c2367ef2aed9304fec36767bdf706ea7e875 Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 16:30:29 +0530 Subject: [PATCH 05/11] fix: cache vite builds --- .github/workflows/app-build.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index caa4553..4ae2019 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -71,6 +71,15 @@ jobs: restore-keys: | ${{ runner.os }}-bun- + - name: Cache Frontend Builds + uses: actions/cache@v4 + with: + path: | + apps/app/node_modules/.vite + key: ${{ runner.os }}-svelte-vite-${{ hashFiles('apps/app/src/**') }} + restore-keys: | + ${{ runner.os }}-svelte-vite- + - name: install frontend dependencies run: bun i From 930c4ae3a31dab5459d58b72edafbb8c0343068f Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 16:30:41 +0530 Subject: [PATCH 06/11] fix: typo in mold setup for platofrm checking --- .github/workflows/app-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index 4ae2019..7fc6558 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -103,11 +103,11 @@ jobs: key: ${{ inputs.platform }}-${{ inputs.args }} - name: setup mold - if: startsWith(matrix.platform, 'ubuntu') + if: startsWith(inputs.platform, 'ubuntu') uses: rui314/setup-mold@v1 - name: setup_windows_linker - if: startsWith(matrix.platform, 'windows') + if: startsWith(inputs.platform, 'windows') shell: bash run: echo "RUSTFLAGS=-C linker=rust-lld" >> $GITHUB_ENV From 85d42f561be21e365697de84aacacf54ce09d788 Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 16:36:00 +0530 Subject: [PATCH 07/11] fix: remove wall of liceneces text when setting up Android SDK --- .github/workflows/app-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index 7fc6558..bd76080 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -132,7 +132,7 @@ jobs: - name: Setup Android SDK if: inputs.mobile == 'android' - uses: android-actions/setup-android@v3 + uses: android-actions/setup-android@v4 - name: Setup Android NDK if: inputs.mobile == 'android' From a66acbedb8c82ffde660befa9b61dcc887ff1c3d Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 17:11:26 +0530 Subject: [PATCH 08/11] fix: add ubuntu linker setup --- .github/workflows/app-build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index bd76080..c7b92ad 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -111,6 +111,13 @@ jobs: shell: bash run: echo "RUSTFLAGS=-C linker=rust-lld" >> $GITHUB_ENV + - name: setup_linux_linker + if: startsWith(inputs.platform, 'ubuntu') && inputs.mobile != 'android' + shell: bash + run: | + sudo apt-get install -y clang + echo "RUSTFLAGS=-C linker=clang -C link-arg=-fuse-ld=mold" >> $GITHUB_ENV + # ------------- Android ------------- - name: Set up JDK if: inputs.mobile == 'android' From 0fcb3f41697c77023d2465757916dc7b9fbd32fa Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 17:27:43 +0530 Subject: [PATCH 09/11] refac: remove frtonend build cache becyase its doesn't work on vite + SPA unlike astrojs --- .github/workflows/app-build.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index c7b92ad..1b52bbb 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -71,15 +71,6 @@ jobs: restore-keys: | ${{ runner.os }}-bun- - - name: Cache Frontend Builds - uses: actions/cache@v4 - with: - path: | - apps/app/node_modules/.vite - key: ${{ runner.os }}-svelte-vite-${{ hashFiles('apps/app/src/**') }} - restore-keys: | - ${{ runner.os }}-svelte-vite- - - name: install frontend dependencies run: bun i From aa1de4a85cf81cc373e59594bc6d8a037a1c082a Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 17:43:59 +0530 Subject: [PATCH 10/11] refac: remove mold linker as not contributing big diffrence in time --- .github/workflows/app-build.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index 1b52bbb..938e5b2 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -93,22 +93,6 @@ jobs: workspaces: apps/app/src-tauri key: ${{ inputs.platform }}-${{ inputs.args }} - - name: setup mold - if: startsWith(inputs.platform, 'ubuntu') - uses: rui314/setup-mold@v1 - - - name: setup_windows_linker - if: startsWith(inputs.platform, 'windows') - shell: bash - run: echo "RUSTFLAGS=-C linker=rust-lld" >> $GITHUB_ENV - - - name: setup_linux_linker - if: startsWith(inputs.platform, 'ubuntu') && inputs.mobile != 'android' - shell: bash - run: | - sudo apt-get install -y clang - echo "RUSTFLAGS=-C linker=clang -C link-arg=-fuse-ld=mold" >> $GITHUB_ENV - # ------------- Android ------------- - name: Set up JDK if: inputs.mobile == 'android' From 6ee392c8f49746841ec76733e8769827e9249ffa Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Sat, 25 Apr 2026 17:47:38 +0530 Subject: [PATCH 11/11] test: test bun cache really making any diffrence --- .github/workflows/app-build.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/app-build.yml b/.github/workflows/app-build.yml index 938e5b2..6236b90 100644 --- a/.github/workflows/app-build.yml +++ b/.github/workflows/app-build.yml @@ -63,14 +63,6 @@ jobs: - name: setup bun uses: oven-sh/setup-bun@v2 - - name: Cache Bun dependencies - uses: actions/cache@v4 - with: - path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb', '**/bun.lock') }} - restore-keys: | - ${{ runner.os }}-bun- - - name: install frontend dependencies run: bun i