name: Build and Push Desktop Applications on: release: types: [published] # Only runs when a release is published permissions: contents: write # Required to upload assets to the release jobs: build-and-upload-linux: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Install LinuxDeploy uses: miurahr/install-linuxdeploy-action@v1 with: plugins: appimage - name: Install Yarn run: npm install --global yarn - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: "yarn" - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y \ libgtk-3-dev \ libglib2.0-dev \ libgdk-pixbuf2.0-dev \ libpango1.0-dev \ libatk1.0-dev \ libcairo2-dev \ libsoup-3.0-dev \ librsvg2-dev \ libwebkit2gtk-4.1-dev - name: Setup Rust uses: dtolnay/rust-toolchain@stable - name: Build project run: bash ./scripts/desktop-linux-release.sh - name: Upload Packaged Files uses: jaywcjlove/github-action-upload-assets@main with: tag: ${{ github.event.release.tag_name }} asset-path: '["release/*"]' build-and-upload-windows: runs-on: windows-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: lts/* - name: Setup Rust uses: dtolnay/rust-toolchain@stable - name: Build project run: powershell.exe ./scripts/desktop-windows-release.ps1 - name: Upload Packaged Files uses: jaywcjlove/github-action-upload-assets@main with: tag: ${{ github.event.release.tag_name }} asset-path: '["release/*"]' build-and-upload-macos: runs-on: macos-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: lts/* - name: Setup Rust uses: dtolnay/rust-toolchain@stable - name: Add Rust targets run: rustup target add aarch64-apple-darwin x86_64-apple-darwin - name: Build project run: bash ./scripts/desktop-macos-release.sh - name: Upload Packaged Files uses: jaywcjlove/github-action-upload-assets@main with: tag: ${{ github.event.release.tag_name }} asset-path: '["release/*"]'