From dece64c6e8da4b4050ec09f5cf5f0db63c9b098f Mon Sep 17 00:00:00 2001
From: boykopovar
Date: Tue, 13 Oct 2026 15:26:04 +0300
Subject: [PATCH] ci(pages): build and deploy wasm converter
---
.github/workflows/progress.yml | 32 +++++++++++++++++++++++++++-----
README.md | 4 ++--
tools/progress.py | 2 +-
tools/progress_history.py | 2 +-
4 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/progress.yml b/.github/workflows/progress.yml
index a45defac9..d789d4de6 100644
--- a/.github/workflows/progress.yml
+++ b/.github/workflows/progress.yml
@@ -1,9 +1,14 @@
-name: Progress
+name: Pages
on:
push:
branches: [main]
workflow_dispatch:
+ release:
+ types: [published]
+ workflow_run:
+ workflows: [Release]
+ types: [completed]
permissions:
contents: read
@@ -15,7 +20,8 @@ concurrency:
cancel-in-progress: false
jobs:
- progress:
+ pages:
+ if: github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
environment:
name: github-pages
@@ -23,11 +29,27 @@ jobs:
steps:
- uses: actions/checkout@v7
with:
+ ref: main
fetch-depth: 0
- - run: python3 tools/progress.py out
- - run: python3 tools/progress_history.py out
+ - name: Build web converter
+ shell: bash
+ run: |
+ git clone --depth 1 https://github.com/emscripten-core/emsdk.git "$RUNNER_TEMP/emsdk"
+ "$RUNNER_TEMP/emsdk/emsdk" install 6.0.3
+ "$RUNNER_TEMP/emsdk/emsdk" activate 6.0.3
+ source "$RUNNER_TEMP/emsdk/emsdk_env.sh"
+ emcmake cmake -S . -B build-wasm -DANYPS5_BUILD_WASM=ON -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=Release
+ cmake --build build-wasm --target relinker_web --parallel 2
+ - name: Test web converter
+ run: python3 tools/test_web.py --build build-wasm
+ - name: Download latest release libraries
+ env:
+ GITHUB_TOKEN: ${{ github.token }}
+ run: python3 tools/build_web.py --build build-wasm --libraries
+ - run: python3 tools/progress.py build-wasm/web
+ - run: python3 tools/progress_history.py build-wasm/web
- uses: actions/upload-pages-artifact@v5
with:
- path: out
+ path: build-wasm/web
- id: deployment
uses: actions/deploy-pages@v5
diff --git a/README.md b/README.md
index aa8f5d6d5..a585752d1 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,9 @@ Includes a [relinker](core/relinker) that converts executable to the target syst
## Status
-[](https://boykopovar.github.io/AnyPS5/) [](https://boykopovar.github.io/AnyPS5/)
+[](https://boykopovar.github.io/AnyPS5/progress.html) [](https://boykopovar.github.io/AnyPS5/progress.html)
-[](https://boykopovar.github.io/AnyPS5/)
+[](https://boykopovar.github.io/AnyPS5/progress.html)
[Progress history](https://boykopovar.github.io/AnyPS5/history.html)
diff --git a/tools/progress.py b/tools/progress.py
index 5139d1ec4..4c92b3e7a 100644
--- a/tools/progress.py
+++ b/tools/progress.py
@@ -440,6 +440,6 @@ if __name__ == "__main__":
(output / "badge-libraries.svg").write_text(badge("libraries*", libraries))
(output / "badge-shaders.svg").write_text(badge("shaders", shaders))
(output / "progress.svg").write_text(render(libraries, shaders))
- (output / "index.html").write_text(summary(libraries, shaders))
+ (output / "progress.html").write_text(summary(libraries, shaders))
print(f'libraries {libraries["done"]}/{libraries["total"]} ({libraries["percent"]}%)')
print(f'shaders {shaders["done"]}/{shaders["total"]} ({shaders["percent"]}%)')
diff --git a/tools/progress_history.py b/tools/progress_history.py
index 26e1ae7b4..63159c40a 100644
--- a/tools/progress_history.py
+++ b/tools/progress_history.py
@@ -116,7 +116,7 @@ def page(points):
f'One point per day with commits on main, taken at the last commit of the day. Every point is measured '
f'with the current tools/progress.py rules and instruction list, '
'so the series is comparable across days. Hover a point for the exact numbers. Raw numbers: history.json. '
- 'Back to the current progress.
',
+ 'Back to the current progress.
',
'| Date | ' + "".join(f'{escape(label)} | % | ' for _, label, _ in SERIES) + '
',
rows,
'
',