From a20483aa47a874c0f1d22c9909ba7b7091a0845a Mon Sep 17 00:00:00 2001 From: Mic Neale Date: Sat, 18 Jan 2025 11:56:35 +1100 Subject: [PATCH] see if we can do a faster desktop ci --- .github/workflows/ci-desktop-app.yml | 127 +++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 .github/workflows/ci-desktop-app.yml diff --git a/.github/workflows/ci-desktop-app.yml b/.github/workflows/ci-desktop-app.yml new file mode 100644 index 000000000000..44c5cd40d0e3 --- /dev/null +++ b/.github/workflows/ci-desktop-app.yml @@ -0,0 +1,127 @@ +name: Desktop App Build + +on: + 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 + + - 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: | + attempt=0 + max_attempts=2 + until [ $attempt -ge $max_attempts ]; do + npm run bundle:default && break + attempt=$((attempt + 1)) + echo "Attempt $attempt failed. Retrying..." + sleep 5 + done + if [ $attempt -ge $max_attempts ]; then + echo "Action failed after $max_attempts attempts." + exit 1 + fi + working-directory: ui/desktop + + + - name: Check app launches + run: | + # Ensure no quarantine attributes (if needed) + xattr -cr "ui/desktop/out/Goose-darwin-arm64/Goose.app" + + + echo "Opening Goose.app..." + open -g "ui/desktop/out/Goose-darwin-arm64/Goose.app" + + # Give the app a few seconds to start and write logs + sleep 5 + + # Check if it's running + if pgrep -f "Goose.app/Contents/MacOS/Goose" > /dev/null; then + echo "App appears to be running." + else + echo "App did not stay open. Possible crash or startup error." + exit 1 + fi + + LOGFILE="$HOME/Library/Application Support/Goose/logs/main.log" + + # Print the log and verify "Starting goosed" + if [ -f "$LOGFILE" ]; then + echo "===== Log file contents =====" + cat "$LOGFILE" + echo "=============================" + + # Check for evidence it ran in the logs: + if grep -F "ChatWindow loaded" "$LOGFILE"; then + echo "Confirmed: 'Starting goosed' found in logs!" + else + echo "Did not find 'Starting goosed' in logs. Failing..." + exit 1 + fi + else + echo "No log file found at $LOGFILE. Exiting with failure." + exit 1 + fi + + # Kill the app to clean up + pkill -f "Goose.app/Contents/MacOS/Goose" \ No newline at end of file