Skip to content

Publish version tags automatically and install the latest release with one command #35

Publish version tags automatically and install the latest release with one command

Publish version tags automatically and install the latest release with one command #35

Workflow file for this run

name: native-daemon
on:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
native:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-14, windows-2022]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v7
with:
go-version-file: go.mod
- name: Build the native daemon
run: go build -o "$RUNNER_TEMP/oac-daemon${{ runner.os == 'Windows' && '.exe' || '' }}" ./apps/parsar-daemon/cmd/parsar-daemon
- name: Native filesystem, authentication and process lifecycle
run: >-
go test -race -count=1
./internal/runtimefs
./apps/parsar-daemon/internal/auth
./apps/parsar-daemon/internal/paths
./apps/parsar-daemon/internal/daemonize
./apps/parsar-daemon/internal/agent/clirunner
- name: Native Harness ownership and environment identity
run: >-
go test -race -count=1
./apps/parsar-daemon/internal/agent/codex
./apps/parsar-daemon/internal/agent/claudesdk
./apps/parsar-daemon/internal/agent/mcode
-run 'TestJSONRPCClientOwnsToolDescendants|TestSelfHostedToolEnvironment'
- name: Native capability snapshots, files and installation
run: >-
go test -race -count=1
./apps/parsar-daemon/internal/localworkspace
./apps/parsar-daemon/internal/cli
-run 'TestNative|TestRuntimeInit|TestRuntimePreparationRejects|TestPreparationFreezesLocalContentsAcrossReconnect|TestSnapshotMarker'
- uses: actions/setup-node@v6
with:
node-version: '22'
- name: Windows npm and npx stdio launchers without network
if: runner.os == 'Windows'
run: >-
go test -race -count=1 -timeout=2m
./apps/parsar-daemon/internal/localworkspace
./apps/parsar-daemon/internal/cli
-run 'TestWindowsPackageManager|TestWindowsRuntimeMCP'
- name: Install pinned native Harness dependencies
run: |
npm install --global pnpm@10.30.3
pnpm install --frozen-lockfile --filter @parsar/claude-sdk-adapter...
pnpm --filter @parsar/claude-sdk-adapter build
npm install --prefix "$RUNNER_TEMP/native-tools" --no-save @openai/codex@0.153.4
mkdir -p "$RUNNER_TEMP/claude-runtime"
cp packages/claude-sdk-adapter/package.json "$RUNNER_TEMP/claude-runtime/"
cp -R packages/claude-sdk-adapter/dist "$RUNNER_TEMP/claude-runtime/"
npm install --prefix "$RUNNER_TEMP/claude-runtime" --omit=dev --ignore-scripts --package-lock=false
- name: Verify native Harness startup without model requests
run: |
if [[ "$RUNNER_OS" == Windows ]]; then
export CLAUDE_CODE_GIT_BASH_PATH='C:\Program Files\Git\bin\bash.exe'
fi
node scripts/native-harness-smoke.mjs --codex-package "$RUNNER_TEMP/native-tools/node_modules/@openai/codex" --claude-runtime "$RUNNER_TEMP/claude-runtime"
- uses: actions/upload-artifact@v6
with:
name: oac-daemon-${{ runner.os }}-${{ runner.arch }}
path: ${{ runner.temp }}/oac-daemon*
if-no-files-found: error