|
|
name: Examples WASM |
|
|
on: |
|
|
push: |
|
|
branches: ["master"] |
|
|
|
|
|
workflow_dispatch: |
|
|
|
|
|
permissions: |
|
|
contents: read |
|
|
pages: write |
|
|
id-token: write |
|
|
|
|
|
concurrency: |
|
|
group: "pages" |
|
|
cancel-in-progress: false |
|
|
|
|
|
jobs: |
|
|
deploy-wasm-github-pages: |
|
|
environment: |
|
|
name: github-pages |
|
|
url: ${{ steps.deployment.outputs.page_url }} |
|
|
runs-on: ubuntu-latest |
|
|
steps: |
|
|
- name: Checkout |
|
|
uses: actions/checkout@v4 |
|
|
|
|
|
- name: Setup Pages |
|
|
uses: actions/configure-pages@v4 |
|
|
|
|
|
- name: Setup emsdk |
|
|
uses: mymindstorm/setup-emsdk@v14 |
|
|
|
|
|
- name: Build WASM Examples |
|
|
|
|
|
run: | |
|
|
mkdir -p build-em && cd build-em |
|
|
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release |
|
|
make -j |
|
|
|
|
|
- name: Create staging directory |
|
|
run: mkdir -p staging |
|
|
|
|
|
- name: Create .nojekyll file in staging directory |
|
|
run: touch staging/.nojekyll |
|
|
|
|
|
- name: Copy application files |
|
|
run: | |
|
|
build_dir=build-em/bin |
|
|
|
|
|
ls ${build_dir} |
|
|
|
|
|
|
|
|
target_dir=staging/command.wasm |
|
|
mkdir -p ${target_dir} |
|
|
cp ${build_dir}/command.wasm/{index.html,command.js,helpers.js} ${target_dir} |
|
|
cp ${build_dir}/libcommand.js ${target_dir} |
|
|
|
|
|
|
|
|
target_dir=staging/bench.wasm |
|
|
mkdir -p ${target_dir} |
|
|
cp ${build_dir}/bench.wasm/{index.html,bench.js,helpers.js} ${target_dir} |
|
|
cp ${build_dir}/libbench.js ${target_dir} |
|
|
|
|
|
|
|
|
target_dir=staging/stream.wasm |
|
|
mkdir -p ${target_dir} |
|
|
cp ${build_dir}/stream.wasm/{index.html,stream.js,helpers.js} ${target_dir} |
|
|
cp ${build_dir}/libstream.js ${target_dir} |
|
|
|
|
|
|
|
|
target_dir=staging/wchess.wasm |
|
|
mkdir -p ${target_dir} |
|
|
cp -r ${build_dir}/wchess.wasm/{index.html,css,img,js} ${target_dir} |
|
|
cp ${build_dir}/wchess.wasm.js ${target_dir} |
|
|
|
|
|
|
|
|
target_dir=staging |
|
|
mkdir -p ${target_dir} |
|
|
cp ${build_dir}/whisper.wasm/{index.html,main.js,helpers.js} ${target_dir} |
|
|
cp ${build_dir}/libmain.js ${target_dir} |
|
|
|
|
|
|
|
|
cp -v examples/coi-serviceworker.js staging/ |
|
|
|
|
|
- name: List files in staging directory (for debugging) |
|
|
run: | |
|
|
echo "Files in staging directory:" |
|
|
find staging -type f | sort |
|
|
|
|
|
- name: Upload artifact |
|
|
uses: actions/upload-pages-artifact@v3 |
|
|
with: |
|
|
path: ./staging |
|
|
|
|
|
- name: Deploy to GitHub Pages |
|
|
id: deployment |
|
|
uses: actions/deploy-pages@v4 |
|
|
|