Publish version tags automatically and install the latest release with one command #35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |