app.yml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. name: Release App
  2. on:
  3. workflow_dispatch:
  4. release:
  5. types: [published]
  6. jobs:
  7. create-release:
  8. permissions:
  9. contents: write
  10. runs-on: ubuntu-20.04
  11. outputs:
  12. release_id: ${{ steps.create-release.outputs.result }}
  13. steps:
  14. - uses: actions/checkout@v3
  15. - name: setup node
  16. uses: actions/setup-node@v3
  17. with:
  18. node-version: 16
  19. - name: get version
  20. run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
  21. - name: create release
  22. id: create-release
  23. uses: actions/github-script@v6
  24. with:
  25. script: |
  26. const { data } = await github.rest.repos.createRelease({
  27. owner: context.repo.owner,
  28. repo: context.repo.repo,
  29. tag_name: `app-v${process.env.PACKAGE_VERSION}`,
  30. name: `Desktop App v${process.env.PACKAGE_VERSION}`,
  31. body: 'Take a look at the assets to download and install this app.',
  32. draft: true,
  33. prerelease: false
  34. })
  35. return data.id
  36. build-tauri:
  37. needs: create-release
  38. permissions:
  39. contents: write
  40. strategy:
  41. fail-fast: false
  42. matrix:
  43. platform: [macos-latest, ubuntu-20.04, windows-latest]
  44. runs-on: ${{ matrix.platform }}
  45. steps:
  46. - uses: actions/checkout@v3
  47. - name: setup node
  48. uses: actions/setup-node@v3
  49. with:
  50. node-version: 16
  51. - name: install Rust stable
  52. uses: dtolnay/rust-toolchain@stable
  53. - name: install dependencies (ubuntu only)
  54. if: matrix.platform == 'ubuntu-20.04'
  55. run: |
  56. sudo apt-get update
  57. sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
  58. - name: install frontend dependencies
  59. run: yarn install # change this to npm or pnpm depending on which one you use
  60. - uses: tauri-apps/tauri-action@v0
  61. env:
  62. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  63. with:
  64. releaseId: ${{ needs.create-release.outputs.release_id }}
  65. publish-release:
  66. permissions:
  67. contents: write
  68. runs-on: ubuntu-20.04
  69. needs: [create-release, build-tauri]
  70. steps:
  71. - name: publish release
  72. id: publish-release
  73. uses: actions/github-script@v6
  74. env:
  75. release_id: ${{ needs.create-release.outputs.release_id }}
  76. with:
  77. script: |
  78. github.rest.repos.updateRelease({
  79. owner: context.repo.owner,
  80. repo: context.repo.repo,
  81. release_id: process.env.release_id,
  82. draft: false,
  83. prerelease: false
  84. })