diff --git a/.github/publish-to-auto-release.yml b/.github/publish-to-auto-release.yml index e963176..e69de29 100644 --- a/.github/publish-to-auto-release.yml +++ b/.github/publish-to-auto-release.yml @@ -1,121 +0,0 @@ -name: "publish" - -on: - push: - branches: - - main - - -# `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-latest - 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: `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: - settings: - - 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.settings.platform }} - 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: - # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. - targets: ${{ matrix.settings.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} - - - name: install dependencies (ubuntu only) - if: matrix.settings.platform == 'ubuntu-22.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 pnpm - run: npm install -g pnpm - - - name: install frontend dependencies - run: pnpm install - - - uses: tauri-apps/tauri-action@v0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - releaseId: ${{ needs.create-release.outputs.release_id }} - args: ${{ matrix.settings.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: false, - prerelease: false - }) \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b880deb..e963176 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,77 +1,121 @@ -name: Build and release app with pnpm +name: "publish" on: push: branches: - main + +# `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: - build: + create-release: + permissions: + contents: write runs-on: ubuntu-latest - + outputs: + release_id: ${{ steps.create-release.outputs.result }} + steps: - - name: Checkout repository - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - name: Install Node.js + - name: setup node uses: actions/setup-node@v4 with: node-version: lts/* - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true + - name: get version + run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV - - name: Cache Rust dependencies - uses: actions/cache@v2 + - name: create release + id: create-release + uses: actions/github-script@v6 with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + 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 - - name: Install pnpm - run: npm install -g pnpm + build-tauri: + needs: create-release + permissions: + contents: write + strategy: + fail-fast: false + matrix: + settings: + - 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: "" - - name: Install dependencies - run: pnpm install + runs-on: ${{ matrix.settings.platform }} + 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: + # Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds. + targets: ${{ matrix.settings.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} - name: install dependencies (ubuntu only) + if: matrix.settings.platform == 'ubuntu-22.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: Build app - run: pnpm run tauri-build + - name: Install pnpm + run: npm install -g pnpm - - name: Upload artifact - uses: actions/upload-artifact@v2 - with: - name: app - path: dist/* # Your build folder + - name: install frontend dependencies + run: pnpm install - - name: Create Release - id: create_release - uses: actions/create-release@v1.1.4 + - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: ${{ github.ref }} - release_name: Release ${{ github.ref }} - draft: false - prerelease: false + releaseId: ${{ needs.create-release.outputs.release_id }} + args: ${{ matrix.settings.args }} + + publish-release: + permissions: + contents: write + runs-on: ubuntu-latest + needs: [create-release, build-tauri] - - name: Upload Release Asset - uses: actions/upload-release-asset@v1.0.2 + steps: + - name: publish release + id: publish-release + uses: actions/github-script@v6 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + release_id: ${{ needs.create-release.outputs.release_id }} with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./dist/AppName.dmg # This should match your build output file - asset_name: AppName.dmg - asset_content_type: application/dmg + script: | + github.rest.repos.updateRelease({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: process.env.release_id, + draft: false, + prerelease: false + }) \ No newline at end of file