diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 081e30a79943c0967f35206791795008942c9ed7..ce708d3040c129135c4dacf41a67e99f2340d06f 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,6 +1,17 @@
 name: Test CI
 
-on: workflow_dispatch
+on:
+  workflow_dispatch:
+    inputs:
+      os:
+        description: "Runs on OS"
+        required: true
+        default: windows-latest
+        type: choice
+        options:
+          - windows-latest
+          - ubuntu-latest
+          - macos-latest
 
 env:
   CARGO_INCREMENTAL: 0
@@ -8,10 +19,7 @@ env:
 
 jobs:
   release:
-    strategy:
-      matrix:
-        os: [windows-latest, ubuntu-latest, macos-latest]
-    runs-on: ${{ matrix.os }}
+    runs-on: ${{ github.event.inputs.os }}
     if: startsWith(github.repository, 'zzzgydi')
     steps:
       - name: Checkout repository
@@ -30,10 +38,10 @@ jobs:
           node-version: 14
 
       - name: Install Dependencies (ubuntu only)
-        if: matrix.os == 'ubuntu-latest'
+        if: github.event.inputs.os == 'ubuntu-latest'
         run: |
           sudo apt-get update
-          sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev libayatana-appindicator-dev patchelf
+          sudo apt-get install -y libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev libappindicator
 
       - name: Get yarn cache dir path
         id: yarn-cache-dir-path
@@ -55,8 +63,6 @@ jobs:
 
       - name: Tauri build
         uses: tauri-apps/tauri-action@0e558392ccadcb49bcc89e7df15a400e8f0c954d
-        # enable cache even though failed
-        continue-on-error: true
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}