Skip to content

Enable proof-aware binary search indexes for compiled data #3206

Enable proof-aware binary search indexes for compiled data

Enable proof-aware binary search indexes for compiled data #3206

Workflow file for this run

name: CI
on:
push:
pull_request:
workflow_dispatch:
jobs:
build-test-artifact:
name: ${{ matrix.os }}
runs-on: ${{ matrix.os }}
env:
# `runner.*` is not available in job-level `env`; using the workspace
# keeps the path valid during workflow parsing and the final step removes it.
OCT_TEST_TEMP_ROOT: ${{ github.workspace }}/.oct-test-artifacts
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
goos: linux
goarch: amd64
binary_name: oct
mcp_binary_name: oct-mcp
- os: windows-latest
goos: windows
goarch: amd64
binary_name: oct.exe
mcp_binary_name: oct-mcp.exe
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Setup MinGW (Windows)
if: matrix.os == 'windows-latest'
uses: msys2/setup-msys2@v2
with:
msystem: UCRT64
release: false
path-type: inherit
- name: Check repository path case uniqueness
if: matrix.os == 'ubuntu-latest'
run: go run ./tools/check_case_collisions
- name: Build judge binaries
shell: pwsh
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: "1"
run: |
New-Item -ItemType Directory -Force -Path dist | Out-Null
go build -o dist/${{ matrix.binary_name }} ./cmd/oct
go build -o dist/${{ matrix.mcp_binary_name }} ./cmd/oct-mcp
- name: Run fast tests
run: go test -count=1 -parallel 8 ./...
- name: Run compiler and CLI integration tests
# T3: Suite/file harnesses share compilation while preserving --case isolation.
run: go test -count=1 -parallel 8 -tags=integration ./...
- name: Run external-tool tests
run: go test -count=1 -parallel 8 -tags=toolchain ./...
- name: Build octxiliary sidecars
run: go run ./tools/build_sidecars --out dist/sidecars
- name: Run slow octxiliary wrapper tests
env:
OCT_WRAPPER_PATH: ${{ github.workspace }}/dist/sidecars
OCT_SLOW_TESTS: "1"
run: go test -count=1 -parallel 8 -tags=toolchain ./cmd/oct -run 'Wrapper|Octxiliary|IO|Csv|Json|Xlsx|Pdf|Image|Plot|Compiled'
- name: Upload retained compiled-test artifacts on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: oct-test-artifacts-${{ matrix.goos }}-${{ matrix.goarch }}
path: ${{ github.workspace }}/.oct-test-artifacts
if-no-files-found: ignore
retention-days: 7
- name: Clean compiled-test temp root
# Failure uploads happen first; successful and failed jobs then remove the owned root.
if: always()
shell: pwsh
run: |
if (Test-Path -LiteralPath $env:OCT_TEST_TEMP_ROOT) {
Remove-Item -LiteralPath $env:OCT_TEST_TEMP_ROOT -Recurse -Force
}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: oct-build-week-${{ matrix.goos }}-${{ matrix.goarch }}
path: |
dist/${{ matrix.binary_name }}
dist/${{ matrix.mcp_binary_name }}
plugins/oct
if-no-files-found: error
retention-days: 14
# Note: native WebView shell smoke is intentionally not in normal CI as of M116.
# Machina deterministic core lanes remain untagged/headless; run WebView manually:
# MACHINA_WEBVIEW_SMOKE=1 go test -tags machina_desktop_webview ./internal/machina/desktophost -run TestWebviewDriverFactoryConstructsAndInitializesNativeBinding -count=1