From 81f1cf5f737231f7b7ff4f04bfbc4440c0f00856 Mon Sep 17 00:00:00 2001 From: Seferino Fernandez Date: Sat, 13 Jul 2024 11:18:05 -0700 Subject: [PATCH] Added Github Workflow to create a release when merged into release branch --- .github/workflows/publish-to-auto-release.yml | 67 +++++++++++++++++++ .github/workflows/test-build-only.yml | 57 ++++++++++++++++ README.md | 16 ++++- 3 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/publish-to-auto-release.yml create mode 100644 .github/workflows/test-build-only.yml diff --git a/.github/workflows/publish-to-auto-release.yml b/.github/workflows/publish-to-auto-release.yml new file mode 100644 index 0000000..69f42fe --- /dev/null +++ b/.github/workflows/publish-to-auto-release.yml @@ -0,0 +1,67 @@ +name: publish + +on: + push: + branches: + - release + +# On each push to the `release` branch it will create or update a GitHub release, build your app, and upload the artifacts to the release. + +jobs: + publish-tauri: + permissions: + contents: write + strategy: + fail-fast: false + matrix: + include: + - platform: macos-latest # for Arm based macs (M1 and above). + args: --target aarch64-apple-darwin + - platform: macos-latest # for Intel based macs. + args: --target x86_64-apple-darwin + - platform: ubuntu-22.04 # for Tauri v1 you could replace this with ubuntu-20.04. + args: '' + - platform: windows-latest + args: '' + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + name: Install pnpm + with: + version: 9 + run_install: false + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: pnpm + + - name: Install Rust stable + uses: dtolnay/rust-toolchain@stable + with: + # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. + targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} + + - name: Install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above. + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + + - name: Install frontend dependencies + run: pnpm install # change this to npm, pnpm or bun depending on which one you use. + + - uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tagName: app-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version. + releaseName: App v__VERSION__ + releaseBody: See the assets to download this version and install. + releaseDraft: true + prerelease: false + args: ${{ matrix.args }} diff --git a/.github/workflows/test-build-only.yml b/.github/workflows/test-build-only.yml new file mode 100644 index 0000000..ceffdb2 --- /dev/null +++ b/.github/workflows/test-build-only.yml @@ -0,0 +1,57 @@ +name: test-on-pr + +on: [pull_request] + +# This workflow will build your tauri app without uploading it anywhere. + +jobs: + test-tauri: + strategy: + fail-fast: false + matrix: + include: + - platform: macos-latest # for Arm based macs (M1 and above). + args: --target aarch64-apple-darwin + - platform: macos-latest # for Intel based macs. + args: --target x86_64-apple-darwin + - platform: ubuntu-22.04 # for Tauri v1 you could replace this with ubuntu-20.04. + args: '' + - platform: windows-latest + args: '' + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + name: Install pnpm + with: + version: 9 + run_install: false + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: lts/* + cache: pnpm + + - name: Install Rust stable + uses: dtolnay/rust-toolchain@stable + with: + # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. + targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} + + - name: Install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above. + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + + - name: Install frontend dependencies + run: pnpm install + + # If tagName and releaseId are omitted tauri-action will only build the app and won't try to upload any assets. + - uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + args: ${{ matrix.args }} diff --git a/README.md b/README.md index ccb674a..70691b9 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,17 @@ Follow [Tauri's prerequisites guide](https://v2.tauri.app/start/prerequisites/) Then rename all instances of `tauriv2-vue-desktop-starter` and `tauriv2_vue_desktop_starter` to your app name. -If you want to replace the package manager update the build configuration in [tauri.conf.json](./src-tauri/tauri.conf.json) +If you want to replace the package manager update: + +- The build configuration in [tauri.conf.json](./src-tauri/tauri.conf.json) +- Update the following steps in [.github/workflows/publish-to-auto-release.yml](.github/workflows/publish-to-auto-release.yml): + - Install pnpm + - Install Node.js + - Install frontend dependencies +- Update the following steps in [.github/workflows/test-build-only.yml](.github/workflows/test-build-only.yml): + - Install pnpm + - Install Node.js + - Install frontend dependencies ## Installation @@ -49,7 +59,7 @@ Tauri Store Plugin stores `settings.json` at: **macOS**: `~/Library/Application Support/com.github.tauriv2-vue-desktop-starter` -## Deployment +## Deployment & Release [Tauri v1 Deployment Guide](https://tauri.app/v1/guides/distribution/publishing) @@ -58,3 +68,5 @@ To build a binary, run: ```bash pnpm tauri build ``` + +This repo is currently setup to create a release on Github when you merge to the `release` branch. See [https://github.com/tauri-apps/tauri-action/tree/dev](https://github.com/tauri-apps/tauri-action/tree/dev)