diff --git a/.github/workflows/vuepress-deploy.yml b/.github/workflows/vuepress-deploy.yml
index a519dddbca2572401675f35b3d7bc57870c1b210..543ac99ecee8a961eb8edfc5d640d830af8056cc 100644
--- a/.github/workflows/vuepress-deploy.yml
+++ b/.github/workflows/vuepress-deploy.yml
@@ -1,6 +1,7 @@
 name: build and deploy
-on: [push]
-  branches: [main]
+on:
+  workflow_dispatch:
+    branches: [main]
 jobs:
   build-and-deploy:
     runs-on: ubuntu-latest
@@ -22,10 +23,12 @@ jobs:
         cache: pnpm
 
     - name: build vuepress site
-      run: pnpm src:build
+      run: pnpm docs:build
 
-    - name: deploy to pages
-      uses: Fudan_iGEM/vuepress-deploy@v1
+    - name: Deploy to GitHub Pages
+      uses: crazy-max/ghaction-github-pages@v4
       with:
         target_branch: gh-pages
-        build_dir: src/.vuepress/dist
+        build_dir: docs/.vuepress/dist
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}