Skip to content

Refactor deploy-pages workflow for main branch integration and artifact management#69

Merged
avivace merged 3 commits intogbdev:mainfrom
vulcandth:move-build-py
Mar 21, 2026
Merged

Refactor deploy-pages workflow for main branch integration and artifact management#69
avivace merged 3 commits intogbdev:mainfrom
vulcandth:move-build-py

Conversation

@vulcandth
Copy link
Contributor

This PR refactors how we handle main vs gh-pages branch artifacts.

Resolves #65
Resolves #66

We moved build.py out of gh-pages and into the main branch.
We now use main.py to dump the updated list of emulators and tests on every Deploy Pages call and move them gh-pages.
Updated main.py to be able to dump the emulator information without requiring us to load up the entire emulator path and its dependencies.

Verified this on my local CI. This will temporarily break the emulators still reference the old "blarg" test name in its results until I re-run the CI for all of the emulators. This will be done once this is merged.

Add a main-branch copy of build.py based on the gh-pages version with only the CLI/path plumbing needed for CI.

Update deploy-pages.yml so deploy-pages checks out main, installs the core Python dependencies, dumps emulators.json and tests.json from main.py on each run, copies those manifests into gh-pages, builds pages/index.html from the gh-pages copies plus persisted emulator result JSON, and removes only pages/build.py before committing.

This keeps gh-pages as published artifacts while allowing new tests, emulators, and page-build changes to be made from main.
Refactor main.py so --dump-emulators-json and --dump-tests-json use static emulator metadata instead of importing emulator backends. This avoids runtime-only dependencies such as selenium when deploy-pages regenerates emulators.json and tests.json.

Add a direct workflow_dispatch entrypoint to deploy-pages.yml and skip the artifact download step for manual runs. That allows the Deploy Pages workflow to be triggered by hand to rebuild gh-pages from the current manifests and persisted results without first running an emulator workflow.
Use the reusable-workflow input instead of github.event_name to decide whether to download emulator result artifacts. This keeps artifact downloads enabled when ci-all or emulator-specific workflows call deploy-pages from a manual dispatch, while still skipping the download step for direct manual Deploy Pages runs with no artifacts.
@vulcandth vulcandth added enhancement New feature or request backend Applies to the automatic testing framework frontend Applies to the web interface labels Mar 21, 2026
@vulcandth vulcandth requested review from ISSOtm, Rangi42 and avivace March 21, 2026 15:37
@avivace avivace merged commit 5fca2ef into gbdev:main Mar 21, 2026
1 check passed
@vulcandth vulcandth deleted the move-build-py branch March 22, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend Applies to the automatic testing framework enhancement New feature or request frontend Applies to the web interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix regression with blargg tests due to rename in gh-pages Avoid modifying gh-pages directly

2 participants