name: Phase 1 — Automated Validation on: push: branches: [main] pull_request: branches: [main] jobs: # ── Job 1: Unit & integration tests ──────────────────────────────────────── test: name: pytest runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: "3.11" cache: "pip" - name: Install package and test dependencies run: pip install -e ".[test]" - name: Run test suite run: pytest tests/ -v --tb=short # ── Job 2: Dockerfile build gate ─────────────────────────────────────────── docker-build: name: docker build runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Build Docker image (no push) run: docker build -t rl-env-server:ci -f grid_env/Server/Dockerfile . # ── Job 3: OpenEnv spec validation (best-effort) ─────────────────────────── openenv-validate: name: openenv spec check runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install package and test dependencies run: pip install -e ".[test]" - name: Validate OpenEnv spec (YAML compliance tests) run: pytest tests/test_openenv_spec.py -v --tb=short