cargo update #21
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 'Publish Pre-Release' | |
| on: | |
| push: | |
| tags: | |
| - 'v*-beta*' | |
| - 'v*-alpha*' | |
| - 'v*-rc*' | |
| jobs: | |
| publish-tauri-prerelease: | |
| permissions: | |
| contents: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - platform: 'macos-latest' | |
| args: '--target aarch64-apple-darwin' | |
| - platform: 'macos-latest' | |
| args: '--target x86_64-apple-darwin' | |
| - platform: 'ubuntu-22.04' | |
| args: '' | |
| - platform: 'windows-latest' | |
| args: '--target x86_64-pc-windows-msvc' | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies (ubuntu only) | |
| if: matrix.platform == 'ubuntu-22.04' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }} | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: lts/* | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| - name: Install frontend dependencies | |
| run: | | |
| cd app | |
| bun install | |
| - name: Set build environment variables | |
| shell: bash | |
| run: | | |
| echo "GIT_COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV | |
| echo "GIT_BRANCH=${GITHUB_REF_NAME}" >> $GITHUB_ENV | |
| echo "BUILD_TIMESTAMP=$(date -u +"%Y-%m-%d %H:%M:%S UTC")" >> $GITHUB_ENV | |
| - name: Determine pre-release type | |
| shell: bash | |
| run: | | |
| TAG_NAME=${GITHUB_REF_NAME} | |
| if [[ $TAG_NAME == *"alpha"* ]]; then | |
| echo "PRERELEASE_TYPE=Alpha" >> $GITHUB_ENV | |
| echo "PRERELEASE_EMOJI=🚧" >> $GITHUB_ENV | |
| echo "TAG_PREFIX=alpha" >> $GITHUB_ENV | |
| elif [[ $TAG_NAME == *"beta"* ]]; then | |
| echo "PRERELEASE_TYPE=Beta" >> $GITHUB_ENV | |
| echo "PRERELEASE_EMOJI=🧪" >> $GITHUB_ENV | |
| echo "TAG_PREFIX=beta" >> $GITHUB_ENV | |
| elif [[ $TAG_NAME == *"rc"* ]]; then | |
| echo "PRERELEASE_TYPE=Release Candidate" >> $GITHUB_ENV | |
| echo "PRERELEASE_EMOJI=🎯" >> $GITHUB_ENV | |
| echo "TAG_PREFIX=rc" >> $GITHUB_ENV | |
| else | |
| echo "PRERELEASE_TYPE=Pre-Release" >> $GITHUB_ENV | |
| echo "PRERELEASE_EMOJI=⚠️" >> $GITHUB_ENV | |
| echo "TAG_PREFIX=pre" >> $GITHUB_ENV | |
| fi | |
| # Extract version number from tag (e.g., v1.0.0-alpha.1 -> 1.0.0 and 1) | |
| BASE_VERSION=$(echo $TAG_NAME | sed -E 's/v([0-9]+\.[0-9]+\.[0-9]+)-.*/\1/') | |
| PRERELEASE_NUMBER=$(echo $TAG_NAME | sed -E 's/.*\.(.*)/\1/') | |
| echo "BASE_VERSION=$BASE_VERSION" >> $GITHUB_ENV | |
| echo "PRERELEASE_NUMBER=$PRERELEASE_NUMBER" >> $GITHUB_ENV | |
| - name: Build Tauri App | |
| uses: tauri-apps/tauri-action@v0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| GIT_COMMIT_HASH: ${{ env.GIT_COMMIT_HASH }} | |
| GIT_BRANCH: ${{ env.GIT_BRANCH }} | |
| BUILD_TIMESTAMP: ${{ env.BUILD_TIMESTAMP }} | |
| with: | |
| projectPath: './app' | |
| tagName: ${{ github.ref_name }} | |
| releaseName: '${{ env.PRERELEASE_EMOJI }} vmix-utility ${{ github.ref_name }}' | |
| releaseBody: | | |
| ## ${{ env.PRERELEASE_EMOJI }} Pre-Release: ${{ env.PRERELEASE_TYPE }} | |
| **⚠️ This is a pre-release version intended for testing purposes.** | |
| ### What's New in This Pre-Release | |
| - Auto-generated pre-release from GitHub Actions | |
| - Built from commit: ${{ env.GIT_COMMIT_HASH }} | |
| - Branch: ${{ env.GIT_BRANCH }} | |
| - Build time: ${{ env.BUILD_TIMESTAMP }} | |
| ### Important Notes | |
| - ⚠️ **Use at your own risk**: This version may contain bugs or unstable features | |
| - 🧪 **For testing only**: Not recommended for production use | |
| - 📝 **Feedback welcome**: Please report issues on GitHub | |
| - 🔄 **Auto-update**: This version supports automatic updates to newer pre-releases and stable releases | |
| ### Download Instructions | |
| Select the appropriate installer for your platform: | |
| - **Windows**: `.msi` file | |
| - **macOS**: `.dmg` file | |
| - **Linux**: `.AppImage` file | |
| ### How to Help | |
| 1. Download and test this pre-release | |
| 2. Report any issues you encounter | |
| 3. Provide feedback on new features | |
| 4. Help us make the stable release better! | |
| --- | |
| 📋 **Full changelog and stable releases**: [View all releases](https://github.com/${{ github.repository }}/releases) | |
| releaseDraft: false | |
| prerelease: true | |
| includeUpdaterJson: true | |
| args: ${{ matrix.args }} |