Skip to content

Give shared Core vocabulary its own packages #893

Give shared Core vocabulary its own packages

Give shared Core vocabulary its own packages #893

Workflow file for this run

name: core-check
on:
workflow_call:
inputs:
ref:
description: Source commit to check
required: false
type: string
push:
branches: [main]
pull_request:
permissions:
contents: read
concurrency:
group: core-check-${{ github.workflow }}-${{ inputs.ref && github.run_id || github.ref }}
cancel-in-progress: true
jobs:
backend:
runs-on: ${{ vars.OAC_USE_GITHUB_RUNNERS == 'true' && 'ubuntu-22.04' || 'blacksmith-2vcpu-ubuntu-2204' }}
timeout-minutes: 40
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_DB: oac_core_ci_tests
POSTGRES_USER: agents_api
POSTGRES_PASSWORD: core_test_only
ports:
- 5432/tcp
options: >-
--health-cmd "pg_isready -U agents_api -d oac_core_ci_tests"
--health-interval 5s
--health-timeout 5s
--health-retries 10
steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref || github.sha }}
- name: Select Go caches
id: source
run: |
echo "revision=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "GOCACHE=$HOME/.oac/cache/go-build" >> "$GITHUB_ENV"
echo "GOMODCACHE=$HOME/.oac/cache/go-mod" >> "$GITHUB_ENV"
- uses: actions/setup-go@v7
with:
go-version-file: go.mod
cache: false
- uses: actions/cache@v6
with:
path: |
~/.oac/cache/go-build
~/.oac/cache/go-mod
key: core-go-v2-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/go.mod', '**/go.sum') }}-backend-${{ steps.source.outputs.revision }}
restore-keys: |
core-go-v2-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/go.mod', '**/go.sum') }}-backend-
core-go-v1-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/go.mod', '**/go.sum') }}-
- uses: actions/setup-node@v6
with:
node-version: '22'
- name: Install native Go prerequisites
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libssl-dev
- name: Verify dedicated test database
env:
OAC_TEST_DATABASE_URL: postgres://agents_api:core_test_only@127.0.0.1:${{ job.services.postgres.ports['5432'] }}/oac_core_ci_tests?sslmode=disable
run: |
echo "OAC_TEST_DATABASE_URL=$OAC_TEST_DATABASE_URL" >> "$GITHUB_ENV"
make check-database
- name: Verify generated SQL queries
run: make check-sqlc
- name: Test Runtime and shared Go contracts
run: make check-go
- name: Test microsandbox provider and Linux helper
run: make check-microsandbox-provider
- name: Build and test standalone Core and persistence
run: make check-core
- name: Build execution daemon
run: make build-daemon
tooling:
runs-on: ${{ vars.OAC_USE_GITHUB_RUNNERS == 'true' && 'ubuntu-22.04' || 'blacksmith-2vcpu-ubuntu-2204' }}
timeout-minutes: 20
steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref || github.sha }}
- name: Select Go caches
id: source
run: |
echo "revision=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "GOCACHE=$HOME/.oac/cache/go-build" >> "$GITHUB_ENV"
echo "GOMODCACHE=$HOME/.oac/cache/go-mod" >> "$GITHUB_ENV"
- uses: actions/setup-go@v7
with:
go-version-file: go.mod
cache: false
- uses: actions/cache@v6
with:
path: |
~/.oac/cache/go-build
~/.oac/cache/go-mod
key: core-go-v2-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/go.mod', '**/go.sum') }}-tooling-${{ steps.source.outputs.revision }}
restore-keys: |
core-go-v2-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/go.mod', '**/go.sum') }}-tooling-
core-go-v1-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/go.mod', '**/go.sum') }}-
- uses: actions/setup-node@v6
with:
node-version: '22'
- name: Install pinned pnpm
run: npm install --global pnpm@10.30.3
- name: Install dependencies and example acceptance browser
run: |
make node-deps
pnpm exec playwright install --with-deps chrome
- name: Verify Harness catalog
run: make check-harness-catalog
- name: Verify repository names
run: make check-names
- name: Test distribution, installer and console packaging
run: make check-distribution
- name: Test and package Claude SDK adapter
run: make check-claude-sdk
- name: Test and build optional example with browser acceptance
run: make check-example
- name: Verify MiniMax companion scripts
run: make check-mcode-harness
web:
runs-on: ${{ vars.OAC_USE_GITHUB_RUNNERS == 'true' && 'ubuntu-22.04' || 'blacksmith-2vcpu-ubuntu-2204' }}
timeout-minutes: 15
steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref || github.sha }}
- uses: actions/setup-node@v6
with:
node-version: '22'
- name: Install pinned pnpm
run: npm install --global pnpm@10.30.3
- name: Typecheck, test and build Web and clients
run: make check-web-unit
web-acceptance:
strategy:
fail-fast: false
matrix:
shard: [1, 2]
runs-on: ${{ vars.OAC_USE_GITHUB_RUNNERS == 'true' && 'ubuntu-22.04' || 'blacksmith-2vcpu-ubuntu-2204' }}
timeout-minutes: 15
steps:
- uses: actions/checkout@v7
with:
ref: ${{ inputs.ref || github.sha }}
- uses: actions/setup-node@v6
with:
node-version: '22'
- name: Install pinned pnpm
run: npm install --global pnpm@10.30.3
- name: Install dependencies and Web acceptance browser
run: |
make node-deps
pnpm exec playwright install --with-deps chrome
- name: Verify Web workflows against isolated fixtures
run: make check-web-acceptance OAC_WEB_TEST_SHARD=${{ matrix.shard }}/2
- name: Upload browser failure evidence
if: failure()
uses: actions/upload-artifact@v6
with:
name: web-acceptance-${{ matrix.shard }}-${{ github.run_attempt }}
path: |
playwright-report/
test-results/
retention-days: 7
compression-level: 0
if-no-files-found: ignore
# Preserve the required check name, and fail closed for skipped/cancelled jobs.
check:
if: always()
needs: [backend, tooling, web, web-acceptance]
runs-on: ${{ vars.OAC_USE_GITHUB_RUNNERS == 'true' && 'ubuntu-22.04' || 'blacksmith-2vcpu-ubuntu-2204' }}
timeout-minutes: 5
steps:
- name: Require every full-gate partition to succeed
env:
RESULTS: ${{ toJSON(needs) }}
run: |
python3 - <<'PY'
import json, os, sys
results = json.loads(os.environ['RESULTS'])
failed = [name for name, job in results.items() if job['result'] != 'success']
if failed:
sys.exit('Full gate did not pass: ' + ', '.join(failed))
print('OpenAgentCore checks passed.')
PY