Add proper tests for astcompile (#651) #169
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: Build Playground | |
| on: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: "pages" | |
| cancel-in-progress: false | |
| jobs: | |
| build_playground: | |
| name: build-playground | |
| runs-on: ubuntu-latest | |
| if: github.repository == 'spylang/spy' && (github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/main') | |
| env: | |
| SPY_WERROR: true | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v2 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@v8.1.0 | |
| with: | |
| enable-cache: true | |
| - name: Install venv | |
| run: | | |
| # we need to have spy installed BEFORE the "build libspy" pass because the Makefile calls `python -m spy.build.flags` | |
| uv sync --no-dev --locked | |
| - name: Setup Emscripten | |
| uses: mymindstorm/setup-emsdk@v14 | |
| - name: Build libspy | |
| run: uv run make -C spy/libspy TARGET=emscripten BUILD_TYPE=debug | |
| - name: Build Python wheel | |
| run: | | |
| uv run python -m build --wheel | |
| - name: Update main.py with wheel filename | |
| run: | | |
| VERSION=$(uv run python -c "import tomllib; print(tomllib.load(open('pyproject.toml', 'rb'))['project']['version'])") | |
| WHEEL_NAME="spylang-${VERSION}-py3-none-any.whl" | |
| sed -i "s|spylang-.*-py3-none-any\.whl|${WHEEL_NAME}|g" playground/main.py | |
| - name: Copy built files to playground | |
| run: | | |
| cp spy/libspy/build/emscripten/debug/libspy.mjs playground/ | |
| cp spy/libspy/build/emscripten/debug/libspy.wasm playground/ | |
| cp dist/spylang-*.whl playground/ | |
| cp -r assets playground/ | |
| mkdir playground/examples | |
| cp -r examples/[1-9]_* playground/examples | |
| - name: Remove build files from playground | |
| run: rm -f playground/Makefile | |
| - name: Setup Pages | |
| uses: actions/configure-pages@v4 | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: './playground' | |
| deploy: | |
| name: deploy-to-pages | |
| runs-on: ubuntu-latest | |
| needs: build_playground | |
| if: github.repository == 'spylang/spy' && (github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/main') | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |