From fa323835870b9efe58f318fd26b92479b2ecc87c Mon Sep 17 00:00:00 2001 From: s1rius Date: Thu, 16 May 2024 02:02:50 +0800 Subject: [PATCH] feat(ui): add ui-tauri release action --- .github/workflows/publish_tauri.yml | 127 ++++++++++++++++++++++++++++ ui-tauri/package.json | 2 +- 2 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish_tauri.yml diff --git a/.github/workflows/publish_tauri.yml b/.github/workflows/publish_tauri.yml new file mode 100644 index 0000000..52f80b2 --- /dev/null +++ b/.github/workflows/publish_tauri.yml @@ -0,0 +1,127 @@ +name: "publish_tauri" + +on: + workflow_dispatch: + push: + branches: + - dev_tauri + + +# `tauri-action` can also upload app bundles to an existing GitHub release. +# This workflow uses different actions to create and publish the release. +# `tauri-action` will only build and upload the app bundles to the specified release. + +jobs: + create-release: + permissions: + contents: write + runs-on: ubuntu-20.04 + defaults: + run: + working-directory: ./ui-tauri + outputs: + release_id: ${{ steps.create-release.outputs.result }} + + steps: + - uses: actions/checkout@v4 + + - name: setup node + uses: actions/setup-node@v4 + with: + node-version: lts/* + + - 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: `ezlog-ui-${process.env.PACKAGE_VERSION}`, + name: `ezlog-ui 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: + include: + - platform: "macos-latest" # for Arm based macs (M1 and above). + args: "--target aarch64-apple-darwin" + - platform: "macos-latest-large" # for Intel based macs. + args: "--target x86_64-apple-darwin" + - platform: "ubuntu-20.04" # for Tauri v1 you could replace this with ubuntu-20.04. + args: "" + - platform: "windows-latest" + args: "" + + runs-on: ${{ matrix.platform }} + defaults: + run: + working-directory: ./ui-tauri + steps: + - uses: actions/checkout@v4 + + - name: setup node + uses: actions/setup-node@v4 + with: + node-version: lts/* + + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable + with: + toolchain: nightly + override: true + # 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-20.04' # This must match the platform value defined above. + run: | + sudo apt-get update + sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + # webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2. + # You can remove the one that doesn't apply to your app to speed up the workflow a bit. + + - name: install frontend dependencies + run: npm 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: + releaseId: ${{ needs.create-release.outputs.release_id }} + args: ${{ matrix.args }} + + publish-release: + permissions: + contents: write + runs-on: ubuntu-latest + 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: true, + prerelease: false + }) \ No newline at end of file diff --git a/ui-tauri/package.json b/ui-tauri/package.json index 38e0176..a545947 100644 --- a/ui-tauri/package.json +++ b/ui-tauri/package.json @@ -1,7 +1,7 @@ { "name": "ezlog", "private": true, - "version": "0.0.0", + "version": "0.1.0-alpha", "type": "module", "scripts": { "dev": "vite",