diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5a39a9dd..23767429 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,71 +1,110 @@ -name: 'publish' +name: "release" on: - push: - branches: - - release - -# This workflow will trigger on each push to the `release` branch to create or update a GitHub release, build your app, and upload the artifacts to the release. + workflow_dispatch: + push: { branches: ["release"] } +env: + VITE_API_URL: ${{ secrets.VITE_API_URL }} jobs: - publish-tauri: - permissions: - contents: write + create-release: + runs-on: ubuntu-20.04 + environment: release + outputs: + release_id: ${{ steps.create-release.outputs.result }} + + steps: + - uses: actions/checkout@v2 + - name: setup node + uses: actions/setup-node@v1 + with: + node-version: 18 + - 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: `v${process.env.PACKAGE_VERSION}`, + name: `Pachtop v${process.env.PACKAGE_VERSION}`, + draft: true, + prerelease: true, + generate_release_notes: true + }) + + return data.id + + build-tauri: + needs: create-release + environment: release 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. + - platform: 'macos-latest' + args: '--target aarch64-apple-darwin' # For Arm-based Macs (M1 and above) + - platform: 'macos-latest' + args: '--target x86_64-apple-darwin' # For Intel-based Macs + - platform: 'ubuntu-20.04' args: '' - platform: 'windows-latest' args: '' runs-on: ${{ matrix.platform }} steps: - - uses: actions/checkout@v4 - + - uses: actions/checkout@v2 - name: setup node - uses: actions/setup-node@v4 + uses: actions/setup-node@v1 with: - node-version: lts/* - + node-version: 18 - name: install Rust stable - uses: dtolnay/rust-toolchain@stable + uses: actions-rs/toolchain@v1 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' || '' }} - + toolchain: stable - name: install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-22.04' # This must match the platform value defined above. + if: matrix.platform == 'ubuntu-20.04' 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. - + sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf - name: install app dependencies uses: ./.github/actions/yarn-nm-install with: enable-corepack: false cache-install-state: true cache-node-modules: true - - name: install frontend dependencies - run: yarn install # change this to npm, pnpm or bun depending on which one you use. - + run: yarn install + - name: Build tauri + run: yarn build - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} 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 }} \ No newline at end of file + releaseId: ${{ needs.create-release.outputs.release_id }} + args: ${{ matrix.args }} + + publish-release: + 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 + }) \ No newline at end of file