Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 3 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
with:
node-version: 24
cache: pnpm
cache-dependency-path: pnpm-lock.yaml
cache-dependency-path: client/pnpm-lock.yaml

- name: Install dependencies
working-directory: client
Expand Down Expand Up @@ -141,7 +141,7 @@ jobs:
- name: Install Linux Tauri dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
sudo apt-get install -y --no-install-recommends \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
libegl-dev \
Expand All @@ -165,14 +165,6 @@ jobs:
working-directory: client/src-tauri
run: cargo check --workspace

- name: Test desktop sidecar IPC contract
working-directory: client/src-tauri
run: cargo test --package xero-desktop-control-ipc --lib

- name: Build desktop sidecar scaffold
working-directory: client/src-tauri
run: cargo build --package xero-desktop-sidecar

windows-dictation-check:
name: Windows Dictation Rust Check
runs-on: windows-2025-vs2026
Expand Down Expand Up @@ -223,7 +215,7 @@ jobs:
if: matrix.name == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y \
sudo apt-get install -y --no-install-recommends \
libpipewire-0.3-dev \
libegl-dev \
libgbm-dev \
Expand Down
72 changes: 72 additions & 0 deletions .github/workflows/landing-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,76 @@ concurrency:
cancel-in-progress: true

jobs:
detect-changes:
name: Detect deploy changes
runs-on: ubuntu-latest
outputs:
landing: ${{ steps.changes.outputs.landing }}
cloud: ${{ steps.changes.outputs.cloud }}
server: ${{ steps.changes.outputs.server }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Detect affected deploys
id: changes
run: |
set -euo pipefail

BASE="${{ github.event.before }}"
HEAD="$GITHUB_SHA"
LANDING=false
CLOUD=false
SERVER=false

if [ -z "$BASE" ] || [[ "$BASE" =~ ^0+$ ]] || ! git cat-file -e "$BASE^{commit}" 2>/dev/null; then
echo "::notice::Could not determine a reliable deploy diff base; deploying all apps."
LANDING=true
CLOUD=true
SERVER=true
else
changed_files="$(git diff --name-only "$BASE" "$HEAD")"
echo "$changed_files"

affects() {
printf '%s\n' "$changed_files" | grep -Eq "$1"
}

if affects '^\.github/workflows/landing-deploy\.yml$'; then
LANDING=true
CLOUD=true
SERVER=true
else
if affects '^landing/'; then
LANDING=true
fi
if affects '^(cloud/|packages/ui/|pnpm-workspace\.yaml$|pnpm-lock\.yaml$|package\.json$)'; then
CLOUD=true
fi
if affects '^server/'; then
SERVER=true
fi
fi
fi

echo "landing=$LANDING" >> "$GITHUB_OUTPUT"
echo "cloud=$CLOUD" >> "$GITHUB_OUTPUT"
echo "server=$SERVER" >> "$GITHUB_OUTPUT"

{
echo "## Deploy plan"
echo ""
echo "- Landing: $LANDING"
echo "- Cloud: $CLOUD"
echo "- Server: $SERVER"
} >> "$GITHUB_STEP_SUMMARY"

landing:
name: Deploy landing to Fly.io
needs: detect-changes
if: ${{ needs.detect-changes.outputs.landing == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 20
concurrency:
Expand Down Expand Up @@ -106,6 +174,8 @@ jobs:

cloud:
name: Deploy cloud to Fly.io
needs: detect-changes
if: ${{ needs.detect-changes.outputs.cloud == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 20
concurrency:
Expand Down Expand Up @@ -146,6 +216,8 @@ jobs:

server:
name: Deploy server to Fly.io
needs: detect-changes
if: ${{ needs.detect-changes.outputs.server == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 20
concurrency:
Expand Down
Loading
Loading