|
@@ -0,0 +1,91 @@
|
|
|
+name: Release App
|
|
|
+
|
|
|
+on:
|
|
|
+ workflow_dispatch:
|
|
|
+ release:
|
|
|
+ types: [published]
|
|
|
+
|
|
|
+jobs:
|
|
|
+ create-release:
|
|
|
+ permissions:
|
|
|
+ contents: write
|
|
|
+ runs-on: ubuntu-20.04
|
|
|
+ outputs:
|
|
|
+ release_id: ${{ steps.create-release.outputs.result }}
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@v3
|
|
|
+ - name: setup node
|
|
|
+ uses: actions/setup-node@v3
|
|
|
+ with:
|
|
|
+ node-version: 16
|
|
|
+ - name: get version
|
|
|
+ run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
|
|
|
+ - name: create release
|
|
|
+ id: create-release
|
|
|
+ uses: actions/github-script@v6
|
|
|
+ with:
|
|
|
+ script: |
|
|
|
+ const { data } = await github.rest.repos.createRelease({
|
|
|
+ owner: context.repo.owner,
|
|
|
+ repo: context.repo.repo,
|
|
|
+ tag_name: `app-v${process.env.PACKAGE_VERSION}`,
|
|
|
+ name: `Desktop App v${process.env.PACKAGE_VERSION}`,
|
|
|
+ body: 'Take a look at the assets to download and install this app.',
|
|
|
+ draft: true,
|
|
|
+ prerelease: false
|
|
|
+ })
|
|
|
+ return data.id
|
|
|
+
|
|
|
+ build-tauri:
|
|
|
+ needs: create-release
|
|
|
+ permissions:
|
|
|
+ contents: write
|
|
|
+ strategy:
|
|
|
+ fail-fast: false
|
|
|
+ matrix:
|
|
|
+ platform: [macos-latest, ubuntu-20.04, windows-latest]
|
|
|
+
|
|
|
+ runs-on: ${{ matrix.platform }}
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@v3
|
|
|
+ - name: setup node
|
|
|
+ uses: actions/setup-node@v3
|
|
|
+ with:
|
|
|
+ node-version: 16
|
|
|
+ - name: install Rust stable
|
|
|
+ uses: dtolnay/rust-toolchain@stable
|
|
|
+ - name: install dependencies (ubuntu only)
|
|
|
+ if: matrix.platform == 'ubuntu-20.04'
|
|
|
+ run: |
|
|
|
+ sudo apt-get update
|
|
|
+ sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
|
|
|
+ - name: install frontend dependencies
|
|
|
+ run: yarn install # change this to npm or pnpm depending on which one you use
|
|
|
+ - uses: tauri-apps/tauri-action@v0
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ with:
|
|
|
+ releaseId: ${{ needs.create-release.outputs.release_id }}
|
|
|
+
|
|
|
+ publish-release:
|
|
|
+ permissions:
|
|
|
+ contents: write
|
|
|
+ runs-on: ubuntu-20.04
|
|
|
+ needs: [create-release, build-tauri]
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - name: publish release
|
|
|
+ id: publish-release
|
|
|
+ uses: actions/github-script@v6
|
|
|
+ env:
|
|
|
+ release_id: ${{ needs.create-release.outputs.release_id }}
|
|
|
+ with:
|
|
|
+ script: |
|
|
|
+ github.rest.repos.updateRelease({
|
|
|
+ owner: context.repo.owner,
|
|
|
+ repo: context.repo.repo,
|
|
|
+ release_id: process.env.release_id,
|
|
|
+ draft: false,
|
|
|
+ prerelease: false
|
|
|
+ })
|