Fix #633: [Bug] Stack-overflow due to infinite recursion in user-defi… #120
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Emscripten | |
| on: | |
| push: | |
| branches: [develop, main] | |
| pull_request: | |
| branches: [develop, main] | |
| workflow_dispatch: | |
| jobs: | |
| emscripten: | |
| name: Emscripten WebAssembly Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Emscripten | |
| uses: mymindstorm/setup-emsdk@v14 | |
| - name: Configure | |
| run: emcmake cmake -B build-em -S emscripten -DCMAKE_BUILD_TYPE=Release | |
| - name: Build | |
| run: cmake --build build-em -j | |
| - name: Verify artifacts | |
| run: | | |
| test -f build-em/chaiscript.js | |
| test -f build-em/chaiscript.wasm | |
| test -f build-em/chaiscript.html | |
| echo "All expected artifacts present" | |
| ls -lh build-em/chaiscript.* | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: chaiscript-web | |
| path: | | |
| build-em/chaiscript.js | |
| build-em/chaiscript.wasm | |
| build-em/chaiscript.html | |
| retention-days: 90 | |
| publish: | |
| name: Publish WASM Release | |
| needs: emscripten | |
| if: github.ref == 'refs/heads/develop' && github.event_name == 'push' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: chaiscript-web | |
| path: artifacts | |
| - name: Publish to wasm-latest release | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # Flatten: artifacts may contain build-em/ subdirectory | |
| find artifacts -type f \( -name 'chaiscript.js' -o -name 'chaiscript.wasm' -o -name 'chaiscript.html' \) -exec cp {} . \; | |
| # Delete existing release if present, then recreate | |
| gh release delete wasm-latest --repo "$GITHUB_REPOSITORY" -y 2>/dev/null || true | |
| gh release create wasm-latest \ | |
| --repo "$GITHUB_REPOSITORY" \ | |
| --title "ChaiScript WASM Build (latest)" \ | |
| --notes "Auto-published from develop branch. Built with Emscripten for browser use." \ | |
| --prerelease \ | |
| chaiscript.js chaiscript.wasm chaiscript.html |