Skip to content

Merge pull request #3 from benclawbot/codex/agent-s-computer-tool #99

Merge pull request #3 from benclawbot/codex/agent-s-computer-tool

Merge pull request #3 from benclawbot/codex/agent-s-computer-tool #99

name: Windows Backend
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: windows-backend-${{ github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
jobs:
check-headless:
name: Check headless default (pdf only)
runs-on: windows-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v6.0.2
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows-backend-headless
- name: Check PowerShell scripts
shell: pwsh
run: ./scripts/check_powershell_syntax.ps1
- name: Cargo check (headless default)
shell: pwsh
run: cargo check --workspace --all-targets --target x86_64-pc-windows-msvc
check-headless-explicit:
name: Check headless explicit (no terminal-ui)
runs-on: windows-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v6.0.2
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows-backend-headless
- name: Check PowerShell scripts
shell: pwsh
run: ./scripts/check_powershell_syntax.ps1
- name: Cargo check (headless explicit)
shell: pwsh
run: cargo check --workspace --all-targets --no-default-features --features pdf --target x86_64-pc-windows-msvc
check-terminal-ui:
name: Check terminal-ui build
runs-on: windows-latest
timeout-minutes: 90
steps:
- uses: actions/checkout@v6.0.2
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows-backend-tui
- name: Check PowerShell scripts
shell: pwsh
run: ./scripts/check_powershell_syntax.ps1
- name: Cargo check (terminal-ui)
shell: pwsh
run: cargo check --workspace --all-targets --features terminal-ui --target x86_64-pc-windows-msvc
test-unit:
name: Unit tests
runs-on: windows-latest
timeout-minutes: 120
steps:
- uses: actions/checkout@v6.0.2
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows-backend-tests
- name: Run unit tests (headless default)
shell: pwsh
run: cargo test --workspace --target x86_64-pc-windows-msvc
test-self-check:
name: Self-check validation
runs-on: windows-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6.0.2
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows-backend-selfcheck
- name: Build iAgent
shell: pwsh
run: cargo build --bin iagent --target x86_64-pc-windows-msvc
- name: Run self-check
shell: pwsh
env:
OPENAI_API_KEY: ${{ secrets.TEST_API_KEY || 'sk-test-dummy' }}
run: |
$env:RUST_LOG = "info"
cargo build --bins --target x86_64-pc-windows-msvc && echo "Build successful - all binaries compile"
test-office-workflows:
name: Test Office workflow fixtures
runs-on: windows-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v6.0.2
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows-backend-office-tests
- name: Run app-integrations tests (includes office workflow fixtures)
shell: pwsh
run: cargo test -p app-integrations --target x86_64-pc-windows-msvc
coverage:
name: Test coverage
runs-on: ubuntu-latest
timeout-minutes: 300
steps:
- uses: actions/checkout@v6.0.2
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- uses: Swatinem/rust-cache@v2
with:
key: coverage
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate coverage report
run: cargo llvm-cov --workspace --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v6.0.1
with:
files: lcov.info
fail_ci_if_error: true