diff --git a/.github/workflows/tauri.yml b/.github/workflows/tauri.yml index 07d6cce..8984feb 100644 --- a/.github/workflows/tauri.yml +++ b/.github/workflows/tauri.yml @@ -6,52 +6,86 @@ on: workflow_dispatch: jobs: - release: + 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: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-20.04' - # You can remove libayatana-appindicator3-dev if you don't use the system tray feature. - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev - - - name: Rust setup - uses: dtolnay/rust-toolchain@stable - - - name: Rust cache - uses: swatinem/rust-cache@v2 - with: - workspaces: "./src-tauri -> target" - - - name: Sync node version and setup cache + - uses: actions/checkout@v3 + - name: setup node uses: actions/setup-node@v3 with: - node-version: "lts/*" - cache: "npm" # Set this to npm, yarn or pnpm. - - - name: Install frontend dependencies - # If you don't have `beforeBuildCommand` configured you may want to build your frontend here too. - run: npm install # Change this to npm, yarn or pnpm. - - - name: Build the app - uses: tauri-apps/tauri-action@v0 - + 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: - tagName: ${{ github.ref_name }} # This only works if your workflow triggers on new tags. - releaseName: "App Name v__VERSION__" # tauri-action replaces \_\_VERSION\_\_ with the app version. - releaseBody: "See the assets to download and install this version." - releaseDraft: true - prerelease: false + 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 + })