Release Assets #10
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: Release Assets | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| linux-bundle: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache Rust artifacts | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Install Zig | |
| uses: goto-bus-stop/setup-zig@v2 | |
| with: | |
| version: 0.15.2 | |
| - name: Install Linux bundle tools | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| meson \ | |
| ninja-build \ | |
| python3-gi \ | |
| xvfb \ | |
| libgtk-4-dev \ | |
| libadwaita-1-dev \ | |
| libjavascriptcoregtk-6.0-dev \ | |
| libwebkitgtk-6.0-dev | |
| - name: Install pinned blueprint-compiler | |
| run: | | |
| prefix="${RUNNER_TEMP}/taskers-blueprint-compiler" | |
| bash scripts/install_blueprint_compiler.sh "$prefix" | |
| echo "${prefix}/bin" >> "$GITHUB_PATH" | |
| "${prefix}/bin/blueprint-compiler" --version | |
| - name: Build debug app for smoke | |
| run: cargo build -p taskers-gtk --bin taskers-gtk | |
| - name: Run headless app smoke | |
| run: | | |
| TASKERS_TERMINAL_BACKEND=mock \ | |
| TIMEOUT_SECONDS=90 \ | |
| bash scripts/headless-smoke.sh \ | |
| ./target/debug/taskers-gtk \ | |
| --smoke-script baseline \ | |
| --diagnostic-log stderr \ | |
| --quit-after-ms 5000 | |
| - name: Build Linux bundle | |
| run: bash scripts/build_linux_bundle.sh | |
| - name: Build Ghostty runtime bundle | |
| run: bash scripts/build_ghostty_runtime_bundle.sh | |
| - name: Run launcher smoke | |
| run: TIMEOUT_SECONDS=90 bash scripts/smoke_linux_release_launcher.sh | |
| - name: Upload release assets | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: release-assets | |
| path: | | |
| dist/taskers-linux-bundle-v*.tar.xz | |
| dist/taskers-ghostty-runtime-v*.tar.xz | |
| release-manifest: | |
| needs: | |
| - linux-bundle | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v4 | |
| - name: Download built assets | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| - name: Flatten downloaded artifacts | |
| run: | | |
| mkdir -p dist/release | |
| find dist -type f -exec cp {} dist/release/ \; | |
| - name: Build release manifest | |
| run: python3 scripts/build_release_manifest.py --dist-dir dist/release | |
| - name: Upload release manifest | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: release-manifest | |
| path: dist/release/taskers-manifest-v*.json | |
| upload-github-release: | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| needs: | |
| - release-manifest | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Download built assets | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| - name: Flatten downloaded artifacts | |
| run: | | |
| mkdir -p dist/release | |
| find dist -type f -exec cp {} dist/release/ \; | |
| - name: Prepare release asset list | |
| id: release-files | |
| run: | | |
| { | |
| echo 'files<<EOF' | |
| echo 'dist/release/taskers-manifest-v*.json' | |
| echo 'dist/release/taskers-linux-bundle-v*.tar.xz' | |
| echo 'dist/release/taskers-ghostty-runtime-v*.tar.xz' | |
| echo 'EOF' | |
| } >> "$GITHUB_OUTPUT" | |
| - name: Create draft GitHub release with assets | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| draft: true | |
| files: ${{ steps.release-files.outputs.files }} |