| name: Update Wasm tests |
| |
| on: |
| # Trigger at every Sunday UTC noon, or manually. |
| schedule: |
| - cron: 0 12 * * 0 |
| workflow_dispatch: |
| |
| jobs: |
| build-wpt: |
| runs-on: ubuntu-24.04 |
| steps: |
| - name: Checkout WPT repo |
| uses: actions/checkout@v4 |
| with: |
| path: wpt |
| - name: Checkout Wasm repo |
| uses: actions/checkout@v4 |
| with: |
| repository: WebAssembly/spec |
| path: wasm-spec |
| - name: Setup OCaml |
| uses: ocaml/setup-ocaml@v3 |
| with: |
| ocaml-compiler: 4.14.x |
| - name: Setup OCaml tools |
| run: opam install --yes ocamlfind.1.9.5 js_of_ocaml.4.0.0 js_of_ocaml-ppx.4.0.0 |
| - name: Build interpreter |
| run: cd wasm-spec/interpreter && opam exec make |
| - name: Convert WAST tests to WPT |
| run: wasm-spec/test/build.py --dont-recompile --html wasm-spec/out/ |
| - name: Copy Wasm tests to WPT |
| # Replace wasm/core entirely. |
| run: | |
| rm -rf wpt/wasm/core |
| cp -r wasm-spec/out/ wpt/wasm/core/ |
| - name: Commit changes |
| id: commit |
| continue-on-error: true |
| run: | |
| cd wpt |
| export BRANCH_NAME="$BRANCH_PREFIX-$(date +'%Y%m%d%H%M%S')" |
| echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV |
| git config user.name "$GIT_AUTHOR_NAME" |
| git config user.email "$GIT_AUTHOR_EMAIL" |
| git checkout -b $BRANCH_NAME |
| git add wasm/core/ |
| git commit -m "$COMMIT_TITLE" |
| env: |
| GIT_AUTHOR_NAME: "wpt-pr-bot" |
| GIT_AUTHOR_EMAIL: "[email protected]" |
| BRANCH_PREFIX: "wasm-update" |
| COMMIT_TITLE: "Update Wasm tests" |
| - name: Create PR |
| # Check outcome for success as continue-on-error will mask failure. |
| if: ${{ steps.commit.outcome == 'success' }} |
| run: | |
| cd wpt |
| git push --set-upstream origin $BRANCH_NAME |
| gh pr create --title "$COMMIT_TITLE" --body "$PR_BODY" --reviewer past |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| COMMIT_TITLE: "Update Wasm tests" |
| PR_BODY: "Scheduled weekly update auto-generated by the '${{ github.workflow }}' workflow." |