diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 5581f5ff..9f80e2f8 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -113,7 +113,7 @@ jobs: name: ${{ env.ARTIFACT }} path: ${{ env.ARTIFACT }}.tar.gz - # -- Workshop: Windows, macOS ARM, macOS Intel, Linux ------------------ + # -- Workshop: Windows, macOS ARM, macOS Intel, Linux x64 and ARM64 ---- workshop: needs: check @@ -138,6 +138,10 @@ jobs: runs-on: ubuntu-22.04 args: "" suffix: linux-x64 + - name: linux-arm + runs-on: ubuntu-22.04-arm + args: "" + suffix: linux-arm64 runs-on: ${{ matrix.runs-on }} steps: - uses: actions/checkout@v4 @@ -147,7 +151,7 @@ jobs: uses: ./.github/actions/hf-model-cache - name: Add the Rust target - if: matrix.name != 'windows' && matrix.name != 'linux' + if: matrix.name == 'macos-arm' || matrix.name == 'macos-intel' run: rustup target add aarch64-apple-darwin x86_64-apple-darwin - uses: actions/setup-node@v4 @@ -163,7 +167,7 @@ jobs: run: npm ci - name: Install Tauri system packages - if: matrix.name == 'linux' + if: startsWith(matrix.name, 'linux') run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev diff --git a/.github/workflows/release-workshop.yml b/.github/workflows/release-workshop.yml index d1a7ec03..20ee5812 100644 --- a/.github/workflows/release-workshop.yml +++ b/.github/workflows/release-workshop.yml @@ -2,10 +2,10 @@ name: Release Workshop run-name: PromptForge Workshop ${{ github.ref_name }} # Builds the PromptForge Workshop desktop installers for Windows, macOS -# (ARM and Intel), and Linux on a workshop-v* tag, tests each -# installer on a clean machine of the same kind, and publishes one GitHub -# Release with all five installers and a SHA256SUMS file. A failed test -# means no release. +# (ARM and Intel), and Linux (x86_64 and ARM64) on a workshop-v* tag, +# tests each installer on a clean machine of the same kind, and publishes +# one GitHub Release with all seven installers and a SHA256SUMS file. +# A failed test means no release. # # Platform code signing is still absent. Tauri updater bundles are signed # independently with the release minisign key. @@ -47,6 +47,9 @@ jobs: - name: linux runs-on: ubuntu-22.04 args: "" + - name: linux-arm + runs-on: ubuntu-22.04-arm + args: "" runs-on: ${{ matrix.runs-on }} steps: - uses: actions/checkout@v4 @@ -57,7 +60,7 @@ jobs: uses: Swatinem/rust-cache@v2 - name: Add the Rust target - if: matrix.name != 'windows' && matrix.name != 'linux' + if: matrix.name == 'macos-arm' || matrix.name == 'macos-intel' run: rustup target add aarch64-apple-darwin x86_64-apple-darwin - uses: actions/setup-node@v4 @@ -73,7 +76,7 @@ jobs: run: npm ci - name: Install Tauri system packages - if: matrix.name == 'linux' + if: startsWith(matrix.name, 'linux') run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev @@ -146,6 +149,8 @@ jobs: runs-on: macos-15-intel - name: linux runs-on: ubuntu-22.04 + - name: linux-arm + runs-on: ubuntu-22.04-arm runs-on: ${{ matrix.runs-on }} steps: - name: Download the installers @@ -233,7 +238,7 @@ jobs: [ "$size" -lt 3000000 ] || { echo "app.js is unexpectedly large ($size bytes)"; exit 1; } - name: Install and check (Linux) - if: matrix.name == 'linux' + if: startsWith(matrix.name, 'linux') run: | set -e sudo apt-get update @@ -316,6 +321,7 @@ jobs: ("darwin-aarch64", "workshop-macos-arm", "*.app.tar.gz.sig"), ("darwin-x86_64", "workshop-macos-intel", "*.app.tar.gz.sig"), ("linux-x86_64", "workshop-linux", "*.AppImage.sig"), + ("linux-aarch64", "workshop-linux-arm", "*.AppImage.sig"), ]: folder = root / artifact signed = [ @@ -382,6 +388,8 @@ jobs: copy_one "workshop-macos-intel/*.dmg" PromptForge-x64.dmg copy_one "workshop-linux/*.deb" PromptForge.deb copy_one "workshop-linux/*.AppImage" PromptForge.AppImage + copy_one "workshop-linux-arm/*.deb" PromptForge-arm64.deb + copy_one "workshop-linux-arm/*.AppImage" PromptForge-arm64.AppImage ls -l dist/evergreen - name: Publish the stable updater pointer