name: "Release" on: workflow_dispatch jobs: create-release: permissions: contents: write runs-on: ubuntu-latest outputs: release-id: ${{ steps.create-release.outputs.result }} version: ${{ steps.get-version.outputs.version }} steps: - name: Checkout repository uses: actions/checkout@v4 - name: Get version from tauri.conf.json id: get-version shell: bash run: | VERSION=$(grep -o '"version": "[^"]*"' src-tauri/tauri.conf.json | cut -d'"' -f4) echo "Application version from tauri.conf.json: $VERSION" echo "version=$VERSION" >> "$GITHUB_OUTPUT" - name: Create Draft Release id: create-release uses: actions/github-script@v7 with: script: | const { data } = await github.rest.repos.createRelease({ owner: context.repo.owner, repo: context.repo.repo, tag_name: `v${{ steps.get-version.outputs.version }}`, name: `v${{ steps.get-version.outputs.version }}`, draft: true, prerelease: false, generate_release_notes: true }) return data.id publish-tauri: permissions: contents: write needs: create-release strategy: fail-fast: false matrix: include: - platform: "macos-26" # for Arm based macs (M1 and above). Uses macOS 26 for Apple Intelligence SDK. args: "--target aarch64-apple-darwin" target: "aarch64-apple-darwin" - platform: "macos-latest" # for Intel based macs. args: "--target x86_64-apple-darwin" target: "x86_64-apple-darwin" - platform: "ubuntu-22.04" # Build .deb on 22.04 args: "--bundles deb" target: "x86_64-unknown-linux-gnu" - platform: "ubuntu-24.04" # Build AppImage and RPM on 24.04 args: "--bundles appimage,rpm" target: "x86_64-unknown-linux-gnu" - platform: "ubuntu-24.04-arm" # Build for ARM64 Linux args: "--bundles appimage,deb,rpm" target: "aarch64-unknown-linux-gnu" - platform: "windows-latest" args: "" target: "x86_64-pc-windows-msvc" - platform: "windows-11-arm" # for ARM64 Windows runner args: "--target aarch64-pc-windows-msvc" target: "aarch64-pc-windows-msvc" uses: ./.github/workflows/build.yml with: platform: ${{ matrix.platform }} target: ${{ matrix.target }} build-args: ${{ matrix.args }} sign-binaries: true asset-prefix: "handy" upload-artifacts: false release-id: ${{ needs.create-release.outputs.release-id }} secrets: inherit