Skip to content

feat: add architecture narration TTS (10 segments) + act title v2 wit… #113

feat: add architecture narration TTS (10 segments) + act title v2 wit…

feat: add architecture narration TTS (10 segments) + act title v2 wit… #113

Workflow file for this run

name: CI
on:
pull_request:
push:
branches: [master]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
go-gateway:
name: Gateway (Go 1.26.1) — Build + Test + Vet
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: '1.26.1'
- name: Build
run: go build ./...
working-directory: backend/realtime-gateway
- name: Vet
run: go vet ./...
working-directory: backend/realtime-gateway
- name: Test with coverage
run: go test -v -race -coverprofile=coverage.out -covermode=atomic ./...
working-directory: backend/realtime-gateway
- name: Coverage summary
run: go tool cover -func=coverage.out | tail -1
working-directory: backend/realtime-gateway
- name: Upload coverage
if: always()
uses: actions/upload-artifact@v4
with:
name: gateway-coverage
path: backend/realtime-gateway/coverage.out
go-orchestrator:
name: Orchestrator (Go 1.26.1) — Build + Test + Vet
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: '1.26.1'
- name: Build
run: go build ./...
working-directory: backend/adk-orchestrator
- name: Vet
run: go vet ./...
working-directory: backend/adk-orchestrator
- name: Test with coverage
run: go test -v -race -coverprofile=coverage.out -covermode=atomic ./...
working-directory: backend/adk-orchestrator
- name: Coverage summary
run: go tool cover -func=coverage.out | tail -1
working-directory: backend/adk-orchestrator
- name: Upload coverage
if: always()
uses: actions/upload-artifact@v4
with:
name: orchestrator-coverage
path: backend/adk-orchestrator/coverage.out
swift:
name: Client (Swift 6.2 / macOS) — Build + Test
runs-on: macos-15
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
with:
clean: true
- name: Select licensed Xcode 16+
run: |
xcodes=($(ls -d /Applications/Xcode*.app 2>/dev/null | sort -V))
if [ ${#xcodes[@]} -eq 0 ]; then
xcodes=(/Applications/Xcode.app)
fi
selected=""
for (( idx=${#xcodes[@]}-1; idx>=0; idx-- )); do
candidate="${xcodes[$idx]}"
devdir="$candidate/Contents/Developer"
if [ ! -d "$devdir" ]; then
continue
fi
version=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "$candidate/Contents/Info.plist" 2>/dev/null || true)
major="${version%%.*}"
if [ -z "$major" ] || [ "$major" -lt 16 ]; then
continue
fi
if DEVELOPER_DIR="$devdir" xcodebuild -checkFirstLaunchStatus >/dev/null 2>&1; then
selected="$devdir"
break
fi
done
if [ -z "$selected" ]; then
echo "::error::No licensed Xcode 16+ installation is available on this runner."
echo "::error::Checked candidates: ${xcodes[*]}"
xcode-select -p || true
exit 69
fi
export DEVELOPER_DIR="$selected"
echo "DEVELOPER_DIR=$DEVELOPER_DIR" >> "$GITHUB_ENV"
xcodebuild -checkFirstLaunchStatus
xcodebuild -version
swift --version
- name: Build
run: swift build
working-directory: VibeCat
- name: Test
run: swift test
working-directory: VibeCat
docker:
name: Docker — Build images
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v6
- name: Build Gateway image
run: docker build -t vibecat-gateway backend/realtime-gateway/
- name: Build Orchestrator image
run: docker build -t vibecat-orchestrator backend/adk-orchestrator/