mirror of https://github.com/boa-dev/boa.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.8 KiB
95 lines
2.8 KiB
name: EcmaScript official test suite (test262) |
|
on: |
|
pull_request: |
|
branches: |
|
- main |
|
merge_group: |
|
types: [checks_requested] |
|
|
|
jobs: |
|
run_test262: |
|
name: Run the test262 test suite |
|
runs-on: ubuntu-latest |
|
timeout-minutes: 60 |
|
steps: |
|
- name: Checkout repository |
|
uses: actions/checkout@v4 |
|
with: |
|
submodules: true |
|
path: boa |
|
|
|
- name: Install Rust toolchain |
|
uses: dtolnay/rust-toolchain@stable |
|
with: |
|
toolchain: stable |
|
|
|
- name: Cache cargo |
|
uses: actions/cache@v4 |
|
with: |
|
path: | |
|
target |
|
~/.cargo/git |
|
~/.cargo/registry |
|
key: ${{ runner.os }}-cargo-test262-${{ hashFiles('**/Cargo.lock') }} |
|
|
|
- name: Checkout the data repo |
|
uses: actions/checkout@v4 |
|
with: |
|
repository: boa-dev/data |
|
path: data |
|
# Run the test suite. |
|
- 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 |
|
shell: bash |
|
run: | |
|
cd boa |
|
comment="$(./target/release/boa_tester compare ../data/test262/refs/heads/main/latest.json ../results/test262/pull/latest.json -m)" |
|
echo "comment<<EOF" >> $GITHUB_OUTPUT |
|
echo "$comment" >> $GITHUB_OUTPUT |
|
echo "EOF" >> $GITHUB_OUTPUT |
|
|
|
- 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@v3 |
|
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@v4 |
|
continue-on-error: true |
|
with: |
|
comment-id: ${{ steps.previous-comment.outputs.comment-id }} |
|
body: | |
|
### Test262 conformance changes |
|
|
|
${{ steps.compare.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@v4 |
|
continue-on-error: true |
|
with: |
|
issue-number: ${{ steps.pr-number.outputs.pr }} |
|
body: | |
|
### Test262 conformance changes |
|
|
|
${{ steps.compare.outputs.comment }} |
|
|
|
|