release.yml 2.9 KB

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