Skip to content

docs(pro): rebrand AIOS → AIOX in pro READMEs #50

docs(pro): rebrand AIOS → AIOX in pro READMEs

docs(pro): rebrand AIOS → AIOX in pro READMEs #50

Workflow file for this run

# Pro Integration Tests
#
# Separate workflow for tests that require the aiox-pro submodule.
# aiox-core CI runs standalone (ADR-PRO-001). This workflow validates
# the integration boundary between core and pro.
#
# Requires PRO_SUBMODULE_TOKEN secret (PAT with repo scope for SynkraAI/aiox-pro).
#
# Tests covered:
# - tests/pro/** (integration tests in aiox-core)
# - pro/**/__tests__/** (unit tests inside aiox-pro submodule)
name: Pro Integration
on:
# When submodule pointer or pro-related tests change
push:
branches: [main]
paths:
- 'pro'
- 'tests/pro/**'
- 'bin/utils/pro-detector.js'
- '.github/workflows/pro-integration.yml'
pull_request:
branches: [main]
paths:
- 'pro'
- 'tests/pro/**'
- 'bin/utils/pro-detector.js'
- '.github/workflows/pro-integration.yml'
# Manual trigger for on-demand validation
workflow_dispatch:
# Weekly scheduled run (Monday 6am UTC)
schedule:
- cron: '0 6 * * 1'
concurrency:
group: pro-integration-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
pro-tests:
name: Pro Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 10
# Skip if secret is not configured (forks, new setups)
# The job will still appear but steps will be skipped gracefully
env:
HAS_PRO_TOKEN: ${{ secrets.PRO_SUBMODULE_TOKEN != '' }}
steps:
- name: Check token availability
id: token-check
run: |
if [ "$HAS_PRO_TOKEN" != "true" ]; then
echo "⚠️ PRO_SUBMODULE_TOKEN not configured. Skipping pro integration tests."
echo "See: .github/workflows/pro-integration.yml for setup instructions."
echo "skip=true" >> $GITHUB_OUTPUT
else
echo "skip=false" >> $GITHUB_OUTPUT
fi
- name: Checkout with submodules
if: steps.token-check.outputs.skip != 'true'
uses: actions/checkout@v4
with:
token: ${{ secrets.PRO_SUBMODULE_TOKEN }}
submodules: 'recursive'
- name: Setup Node.js
if: steps.token-check.outputs.skip != 'true'
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: package-lock.json
- name: Install core dependencies
if: steps.token-check.outputs.skip != 'true'
run: npm ci
- name: Install pro dependencies
if: steps.token-check.outputs.skip != 'true'
run: |
if [ -f pro/package.json ]; then
cd pro && npm install --legacy-peer-deps
else
echo "⚠️ pro/package.json not found — submodule may not be initialized"
exit 1
fi
- name: Verify submodule checkout
if: steps.token-check.outputs.skip != 'true'
run: |
echo "=== Pro Submodule Status ==="
git submodule status
echo ""
echo "=== Pro Version ==="
node -e "const p = require('./pro/package.json'); console.log(p.name + '@' + p.version)"
echo ""
echo "=== Pro Contents ==="
ls pro/
- name: Run core→pro integration tests
if: steps.token-check.outputs.skip != 'true'
run: |
echo "=== Running tests/pro/ (integration tests in aiox-core) ==="
npx jest tests/pro/ --no-coverage --verbose
- name: Run pro internal tests
if: steps.token-check.outputs.skip != 'true'
continue-on-error: true
run: |
echo "=== Running pro/**/__tests__/ (unit tests in aiox-pro) ==="
echo "Note: failures here are informational — fix in aiox-pro repo"
npx jest --roots pro/ --no-coverage --verbose
- name: Summary
if: steps.token-check.outputs.skip != 'true' && always()
run: |
echo "=== Pro Integration Summary ==="
echo "Core integration tests: tests/pro/"
echo "Pro unit tests: pro/**/__tests__/"
echo "Submodule ref: $(git submodule status | awk '{print $1}')"