Repository navigation
Give shared Core vocabulary its own packages #893
Workflow file for this run
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: 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 |