release.yml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. name: Release Build
  2. on:
  3. workflow_dispatch:
  4. push:
  5. tags:
  6. - v**
  7. env:
  8. CARGO_INCREMENTAL: 0
  9. RUST_BACKTRACE: short
  10. jobs:
  11. release:
  12. strategy:
  13. fail-fast: false
  14. matrix:
  15. os: [windows-latest, ubuntu-latest, macos-latest]
  16. runs-on: ${{ matrix.os }}
  17. if: startsWith(github.repository, 'wonfen')
  18. steps:
  19. - name: Checkout repository
  20. uses: actions/checkout@v4
  21. - name: install Rust stable
  22. uses: dtolnay/rust-toolchain@stable
  23. - name: Rust Cache
  24. uses: Swatinem/rust-cache@v2
  25. with:
  26. workspaces: src-tauri
  27. - name: Install Node
  28. uses: actions/setup-node@v4
  29. with:
  30. node-version: "20"
  31. - uses: pnpm/action-setup@v2
  32. name: Install pnpm
  33. with:
  34. version: 8
  35. run_install: false
  36. - name: Install Dependencies (Ubuntu Only)
  37. if: startsWith(matrix.os, 'ubuntu-')
  38. run: |
  39. sudo apt-get update
  40. sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf openssl
  41. - name: Pnpm install and check
  42. run: |
  43. pnpm i
  44. pnpm check
  45. - name: Tauri build
  46. uses: tauri-apps/tauri-action@v0
  47. env:
  48. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  49. TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
  50. TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
  51. with:
  52. tagName: v__VERSION__
  53. releaseName: "Clash Verge v__VERSION__"
  54. releaseBody: "More new features are now supported."
  55. releaseDraft: false
  56. prerelease: false
  57. tauriScript: pnpm
  58. args: -f default-meta
  59. - name: Portable Bundle
  60. if: matrix.os == 'windows-latest'
  61. run: |
  62. pnpm portable
  63. env:
  64. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  65. TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
  66. TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
  67. VITE_WIN_PORTABLE: 1
  68. release-update:
  69. needs: [release]
  70. runs-on: ubuntu-latest
  71. if: |
  72. startsWith(github.repository, 'wonfen') &&
  73. startsWith(github.ref, 'refs/tags/v')
  74. steps:
  75. - name: Checkout repository
  76. uses: actions/checkout@v4
  77. - name: Install Node
  78. uses: actions/setup-node@v4
  79. with:
  80. node-version: "20"
  81. - uses: pnpm/action-setup@v2
  82. name: Install pnpm
  83. with:
  84. version: 8
  85. run_install: false
  86. - name: Pnpm install
  87. run: pnpm i
  88. - name: Release updater file
  89. run: pnpm updater
  90. env:
  91. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}