Skip to content

[ui] fix: limit message count for react memory usage #131

[ui] fix: limit message count for react memory usage

[ui] fix: limit message count for react memory usage #131

name: Desktop App Release
on:
push:
tags:
- "v1.*"
pull_request:
branches:
- v1.0
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: macos-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- name: Cache Cargo registry
uses: actions/cache@v3
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-registry-
- name: Cache Cargo index
uses: actions/cache@v3
with:
path: ~/.cargo/index
key: ${{ runner.os }}-cargo-index
restore-keys: |
${{ runner.os }}-cargo-index
- name: Cache Cargo build
uses: actions/cache@v3
with:
path: target
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-build-
# Build Rust Binary
- name: Build Release Binary
run: cargo build --release
- name: copy binary
run: cp target/release/goosed ui/desktop/src/bin/goosed
# Desktop App Steps
- name: Add MacOS certs for signing and notarization
run: ./add-macos-cert.sh
working-directory: ui/desktop
env:
CERTIFICATE_OSX_APPLICATION: ${{ secrets.CERTIFICATE_OSX_APPLICATION }}
CERTIFICATE_PASSWORD: ${{ secrets.CERTIFICATE_PASSWORD }}
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: 'lts/*'
- name: Install dependencies
run: npm ci
working-directory: ui/desktop
- name: Make default Goose App
run: npm run bundle:default
working-directory: ui/desktop
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: Goose-darwin-arm64
path: ui/desktop/out/Goose-darwin-arm64/Goose.zip
release:
name: Release
runs-on: ubuntu-latest
needs: [build]
permissions:
contents: write
pull-requests: write
if: github.event_name != 'pull_request'
steps:
# Download all artifacts
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
# Create or update release
- name: Create/Update Release
uses: ncipollo/release-action@v1
with:
artifacts: "*.zip"
token: ${{ secrets.GITHUB_TOKEN }}
allowUpdates: true
omitBody: true
omitPrereleaseDuringUpdate: true
pr-comment:
name: Add PR Comment
runs-on: ubuntu-latest
needs: [build]
permissions:
pull-requests: write
if: github.event_name == 'pull_request'
steps:
# Download all artifacts
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
# Create comment with download links
- name: Find Comment
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: Desktop App build artifacts
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
### Desktop App for this PR
The following build is available for testing:
- [📱 macOS Desktop App (Universal, signed)](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/Goose-darwin-arm64.zip)
The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.
This link is provided by nightly.link and will work even if you're not logged into GitHub.
edit-mode: replace