diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..64a000a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,69 @@ +name: CI + +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +jobs: + windows-validation: + name: Windows validation + runs-on: windows-latest + timeout-minutes: 20 + defaults: + run: + shell: pwsh + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up pnpm + uses: pnpm/action-setup@v6 + with: + version: 10 + run_install: false + + - name: Set up Node.js + uses: actions/setup-node@v6 + with: + node-version: "24" + cache: pnpm + cache-dependency-path: pnpm-lock.yaml + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.13" + cache: pip + cache-dependency-path: packages/image-pipeline/requirements.txt + + - name: Install JavaScript dependencies + run: pnpm install --frozen-lockfile + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -r packages\image-pipeline\requirements.txt + + - name: Typecheck TypeScript workspace + run: pnpm typecheck + + - name: Build TypeScript workspace + run: pnpm build + + - name: Typecheck Python image pipeline + run: pnpm --filter @autopet/image-pipeline typecheck + + - name: Test Python image pipeline through pnpm + run: pnpm --filter @autopet/image-pipeline test + + - name: Compile Python package + run: python -m compileall packages\image-pipeline\autopet_image_pipeline + + - name: Run Python unittest suite + run: python -m unittest discover -s packages\image-pipeline diff --git a/README.md b/README.md index 85cb082..788204c 100644 --- a/README.md +++ b/README.md @@ -460,6 +460,18 @@ corepack pnpm --filter @autopet/image-pipeline test .\.venv\Scripts\python.exe -m unittest discover -s packages\image-pipeline ``` +### CI + +The repository includes a minimal GitHub Actions workflow that validates the +non-GUI baseline checks on Windows. It runs the TypeScript typecheck/build +checks and the Python image-pipeline compile/test checks. + +CI does not replace the manual Stage 9 E2E smoke checklist. It does not launch +the Electron GUI apps or build release installers. + +AutoPet is still not a v0.1 release yet. Release-readiness notes are still +pending. + --- ## Runtime Window Requirements diff --git a/docs/dev-log.md b/docs/dev-log.md index 82f180c..de28b09 100644 --- a/docs/dev-log.md +++ b/docs/dev-log.md @@ -2,7 +2,7 @@ ## Current Handoff State -Date: 2026-05-19 +Date: 2026-05-21 AutoPet is still in the v0.1 implementation stage. This is not a v0.1 release. @@ -29,8 +29,9 @@ Current handoff state: ```text Stage 8 is complete. -Stage 9 has begun with a docs-only manual E2E smoke checklist and -source-of-truth cleanup. +Stage 9.1 added the manual E2E smoke checklist and source-of-truth cleanup. +Stage 9.2 manual E2E smoke passed on 2026-05-21. +Stage 9.3 is the current minimal CI workflow task. ``` Known merged pull requests documented in this log: @@ -51,6 +52,8 @@ PR #12: Add Runtime pet package loader helper PR #13: Load pet packages from local folders PR #14: Add Maker image pipeline runner helper PR #15: Export pet packages from transparent PNGs +PR #16: Refresh source of truth after Stage 8 +PR #17: Add Stage 9 E2E smoke checklist ``` Completed / current stages: @@ -70,11 +73,13 @@ Completed / current stages: - Stage 8.1: Maker image-pipeline runner helper. - Stage 8.2: Maker transparent PNG export UI / IPC integration. - Stage 9.1: Manual v0.1 E2E smoke checklist and source-of-truth cleanup. +- Stage 9.2: Manual Maker export to Runtime `Load Pet...` E2E smoke passed. +- Stage 9.3: Minimal non-GUI Windows CI workflow task is current. Latest known verification: ```powershell -corepack pnpm --filter @autopet/maker typecheck +git diff --check corepack pnpm typecheck corepack pnpm build corepack pnpm --filter @autopet/image-pipeline typecheck @@ -87,10 +92,35 @@ corepack pnpm --filter @autopet/image-pipeline test Result: ```text -Passed during Stage 8 work. -Maker manual smoke passed for opening the export form, choosing a transparent -PNG, choosing an output folder, exporting a temporary transparent PNG, and -generating pet.json, spritesheet.png, and preview.gif. +Stage 9.2 manual E2E smoke passed on 2026-05-21. + +Environment: +- Branch: test/stage9-e2e-smoke-run +- Commit: 6bf3eeb +- Node: v24.15.0 +- pnpm: 10.33.4 +- Python: 3.13.13 + +Baseline checks passed: +- git diff --check +- corepack pnpm typecheck +- corepack pnpm build +- corepack pnpm --filter @autopet/image-pipeline typecheck +- corepack pnpm --filter @autopet/image-pipeline test, 4 tests OK +- .\.venv\Scripts\python.exe -m compileall packages\image-pipeline\autopet_image_pipeline +- .\.venv\Scripts\python.exe -m unittest discover -s packages\image-pipeline, 4 tests OK + +Maker transparent PNG export passed and generated pet.json, spritesheet.png, +and preview.gif outside the repository under +%TEMP%\autopet-v0.1-e2e-smoke. The generated pet.json referenced +spritesheet.png. + +Runtime launch, right-click menu, Load Pet..., generated pet display, visible +animation advancement, drag, Reset Position, Always on Top toggle, and Exit +passed by human manual confirmation. + +No bugfix PR was needed from the smoke run. Final git status --short was clean, +and the temporary branch test/stage9-e2e-smoke-run was deleted. ``` Current source-of-truth files for future ChatGPT / Codex threads: @@ -101,14 +131,14 @@ AGENTS.md docs/dev-log.md docs/pet-schema.md docs/workflows/codex-pr-workflow.md +docs/workflows/v0.1-e2e-smoke-checklist.md ``` Current recommended next task: ```text -Run the Stage 9.1 manual E2E smoke checklist on Windows. -If failures appear, split fixes into small bugfix PRs. -Then consider minimal CI and release-readiness notes. +Open the Stage 9.3 minimal CI PR and confirm the GitHub Actions run is green. +Then proceed to release-readiness notes. ``` Stage 9 should not assume installer creation, GitHub Release binaries, release @@ -977,9 +1007,8 @@ This cleanup should be kept separate from feature work. Recommended next task: ```text -Run the Stage 9.1 manual E2E smoke checklist on Windows. -If failures appear, split fixes into small bugfix PRs. -Then consider minimal CI and release-readiness notes. +Open the Stage 9.3 minimal CI PR and confirm the GitHub Actions run is green. +Then proceed to release-readiness notes. ``` Stage 9.1 checklist path: