app.yml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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('./src-tauri/tauri.conf.json').package.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.getLatestRelease({
  27. owner: context.repo.owner,
  28. repo: context.repo.repo,
  29. })
  30. return data.id
  31. build-tauri:
  32. needs: create-release
  33. permissions:
  34. contents: write
  35. strategy:
  36. fail-fast: false
  37. matrix:
  38. platform: [macos-latest, ubuntu-20.04, windows-latest]
  39. runs-on: ${{ matrix.platform }}
  40. steps:
  41. - uses: actions/checkout@v3
  42. - name: setup node
  43. uses: actions/setup-node@v3
  44. with:
  45. node-version: 16
  46. - name: install Rust stable
  47. uses: dtolnay/rust-toolchain@stable
  48. - name: install dependencies (ubuntu only)
  49. if: matrix.platform == 'ubuntu-20.04'
  50. run: |
  51. sudo apt-get update
  52. sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
  53. - name: install frontend dependencies
  54. run: yarn install # change this to npm or pnpm depending on which one you use
  55. - uses: tauri-apps/tauri-action@v0
  56. env:
  57. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  58. with:
  59. releaseId: ${{ needs.create-release.outputs.release_id }}
  60. publish-release:
  61. permissions:
  62. contents: write
  63. runs-on: ubuntu-20.04
  64. needs: [create-release, build-tauri]
  65. steps:
  66. - name: publish release
  67. id: publish-release
  68. uses: actions/github-script@v6
  69. env:
  70. release_id: ${{ needs.create-release.outputs.release_id }}
  71. with:
  72. script: |
  73. github.rest.repos.updateRelease({
  74. owner: context.repo.owner,
  75. repo: context.repo.repo,
  76. release_id: process.env.release_id,
  77. draft: false,
  78. prerelease: false
  79. })