feat: works
This commit is contained in:
119
__wasm/wit-bindgen-sample/engine/boa/.github/workflows/test262.yml
vendored
Normal file
119
__wasm/wit-bindgen-sample/engine/boa/.github/workflows/test262.yml
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
name: EcmaScript official test suite (test262)
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
tags:
|
||||
- v*
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
run_test262:
|
||||
name: Run the test262 test suite
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: true
|
||||
path: boa
|
||||
- name: Install the Rust toolchain
|
||||
uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
- name: Cache cargo
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
target
|
||||
~/.cargo/git
|
||||
~/.cargo/registry
|
||||
key: ${{ runner.os }}-cargo-test262-${{ hashFiles('**/Cargo.lock') }}
|
||||
|
||||
# Run the test suite and upload the results
|
||||
- name: Checkout GitHub pages
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: gh-pages
|
||||
path: gh-pages
|
||||
|
||||
- name: Run the test262 test suite
|
||||
run: |
|
||||
cd boa
|
||||
mkdir ../results
|
||||
cargo run --release --bin boa_tester -- run -v -o ../results/test262
|
||||
cd ..
|
||||
|
||||
# Run the results comparison
|
||||
- name: Compare results
|
||||
if: github.event_name == 'pull_request'
|
||||
id: compare-non-vm
|
||||
shell: bash
|
||||
run: |
|
||||
cd boa
|
||||
comment="$(./target/release/boa_tester compare ../gh-pages/test262/refs/heads/main/latest.json ../results/test262/pull/latest.json -m)"
|
||||
comment="${comment//'%'/'%25'}"
|
||||
comment="${comment//$'\n'/'%0A'}"
|
||||
comment="${comment//$'\r'/'%0D'}"
|
||||
echo "::set-output name=comment::$comment"
|
||||
|
||||
- name: Get the PR number
|
||||
if: github.event_name == 'pull_request'
|
||||
id: pr-number
|
||||
uses: kkak10/pr-number-action@v1.3
|
||||
|
||||
- name: Find Previous Comment
|
||||
if: github.event_name == 'pull_request'
|
||||
uses: peter-evans/find-comment@v2
|
||||
id: previous-comment
|
||||
with:
|
||||
issue-number: ${{ steps.pr-number.outputs.pr }}
|
||||
body-includes: Test262 conformance changes
|
||||
|
||||
- name: Update comment
|
||||
if: github.event_name == 'pull_request' && steps.previous-comment.outputs.comment-id
|
||||
uses: peter-evans/create-or-update-comment@v2
|
||||
continue-on-error: true
|
||||
with:
|
||||
comment-id: ${{ steps.previous-comment.outputs.comment-id }}
|
||||
body: |
|
||||
### Test262 conformance changes
|
||||
|
||||
${{ steps.compare-non-vm.outputs.comment }}
|
||||
${{ steps.compare-vm.outputs.comment }}
|
||||
edit-mode: replace
|
||||
|
||||
- name: Write a new comment
|
||||
if: github.event_name == 'pull_request' && !steps.previous-comment.outputs.comment-id
|
||||
uses: peter-evans/create-or-update-comment@v2
|
||||
continue-on-error: true
|
||||
with:
|
||||
issue-number: ${{ steps.pr-number.outputs.pr }}
|
||||
body: |
|
||||
### Test262 conformance changes
|
||||
|
||||
${{ steps.compare-non-vm.outputs.comment }}
|
||||
${{ steps.compare-vm.outputs.comment }}
|
||||
|
||||
# Commit changes to GitHub pages.
|
||||
- name: Commit files
|
||||
if: github.event_name == 'push'
|
||||
run: |
|
||||
cp -r ./results/test262/* ./gh-pages/test262/
|
||||
cd gh-pages
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git add test262
|
||||
git commit -m "Add new test262 results" -a
|
||||
cd ..
|
||||
- name: Upload results
|
||||
if: github.event_name == 'push'
|
||||
uses: ad-m/github-push-action@v0.6.0
|
||||
with:
|
||||
directory: gh-pages
|
||||
branch: gh-pages
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
Reference in New Issue
Block a user