feat: add dependency
This commit is contained in:
54
javascript-engine/external/boa/.github/workflows/master.yml
vendored
Normal file
54
javascript-engine/external/boa/.github/workflows/master.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
name: Main workflows
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
benchmark:
|
||||
if: ${{ github.actor != 'dependabot[bot]' }}
|
||||
name: Upload docs and run benchmarks
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
- name: Cache cargo
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
target
|
||||
!target/doc_upload
|
||||
~/.cargo/git
|
||||
~/.cargo/registry
|
||||
key: ${{ runner.os }}-cargo-doc-bench-${{ hashFiles('**/Cargo.lock') }}
|
||||
- name: Generate documentation
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: doc
|
||||
args: -v --document-private-items --all-features --workspace --no-deps --exclude boa_examples
|
||||
- run: echo "<meta http-equiv=refresh content=0;url=boa_engine/index.html>" > target/doc/index.html
|
||||
- run: |
|
||||
if [ -d target/doc_upload ]; then rm -rf target/doc_upload; fi
|
||||
mkdir target/doc_upload && mv target/doc target/doc_upload/doc
|
||||
- name: Upload documentation
|
||||
uses: crazy-max/ghaction-github-pages@v3.1.0
|
||||
with:
|
||||
target_branch: gh-pages
|
||||
keep_history: true
|
||||
build_dir: target/doc_upload
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Run benchmark
|
||||
run: cargo bench -p boa_engine -- --output-format bencher | tee output.txt
|
||||
- name: Store benchmark result
|
||||
uses: benchmark-action/github-action-benchmark@v1.15.0
|
||||
with:
|
||||
name: Boa Benchmarks
|
||||
tool: "cargo"
|
||||
output-file-path: output.txt
|
||||
auto-push: true
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
34
javascript-engine/external/boa/.github/workflows/pull_request.yml
vendored
Normal file
34
javascript-engine/external/boa/.github/workflows/pull_request.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Benchmarks
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
runBenchmark:
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-benchmark')
|
||||
name: run benchmark
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- 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-${{ hashFiles('**/Cargo.lock') }}
|
||||
- uses: boa-dev/criterion-compare-action@v3.2.4
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branchName: ${{ github.base_ref }}
|
||||
cwd: ./boa_engine
|
||||
62
javascript-engine/external/boa/.github/workflows/release.yml
vendored
Normal file
62
javascript-engine/external/boa/.github/workflows/release.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
name: Publish Release
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
name: publish
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install Rust toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
profile: minimal
|
||||
override: true
|
||||
|
||||
- name: Install cargo-workspaces
|
||||
uses: actions-rs/install@v0.1
|
||||
with:
|
||||
crate: cargo-workspaces
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
|
||||
PATCH: ${{ github.run_number }}
|
||||
shell: bash
|
||||
run: |
|
||||
git config --global user.email "runner@gha.local"
|
||||
git config --global user.name "Github Action"
|
||||
cargo workspaces publish --from-git --yes minor
|
||||
doc-publish:
|
||||
# needs: publish
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install wasm-pack
|
||||
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: "16"
|
||||
- run: npm ci
|
||||
- name: Cache npm build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
node_modules
|
||||
target
|
||||
boa_wasm/pkg
|
||||
~/.cargo/git
|
||||
~/.cargo/registry
|
||||
key: ${{ runner.os }}-npm-build-target-${{ hashFiles('**/package-lock.json') }}
|
||||
- run: npm run build:prod
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
publish_dir: ./dist
|
||||
destination_dir: playground
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
88
javascript-engine/external/boa/.github/workflows/rust.yml
vendored
Normal file
88
javascript-engine/external/boa/.github/workflows/rust.yml
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
name: Continuous integration
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- staging # bors
|
||||
- trying # bors
|
||||
|
||||
jobs:
|
||||
coverage:
|
||||
name: Coverage
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: tarpaulin
|
||||
- name: Run cargo-tarpaulin
|
||||
uses: actions-rs/tarpaulin@v0.1
|
||||
with:
|
||||
args: --features intl --ignore-tests --engine llvm
|
||||
- name: Upload to codecov.io
|
||||
uses: codecov/codecov-action@v3
|
||||
|
||||
tests:
|
||||
name: Build and Test
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- macos-latest
|
||||
- windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
- name: Build tests
|
||||
run: cargo test --no-run --profile ci
|
||||
# this order is faster according to rust-analyzer
|
||||
- name: Build
|
||||
run: cargo build --all-targets --quiet --profile ci
|
||||
- name: Install latest nextest
|
||||
uses: taiki-e/install-action@nextest
|
||||
- name: Test with nextest
|
||||
run: cargo nextest run --profile ci --cargo-profile ci --features intl
|
||||
|
||||
misc:
|
||||
name: Misc
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
components: rustfmt, clippy
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: misc
|
||||
- name: Format (rustfmt)
|
||||
run: cargo fmt --all --check
|
||||
- name: Lint (All features)
|
||||
run: cargo clippy --all-features --all-targets
|
||||
- name: Lint (No features)
|
||||
run: cargo clippy --no-default-features --all-targets
|
||||
- name: Generate documentation
|
||||
run: cargo doc -v --document-private-items --all-features
|
||||
- name: Build
|
||||
run: cargo build --all-targets --quiet --profile ci
|
||||
- run: cd boa_examples
|
||||
- name: Build examples
|
||||
run: cargo build --quiet --profile ci
|
||||
- name: Run example classes
|
||||
run: cargo run --bin classes --profile ci
|
||||
12
javascript-engine/external/boa/.github/workflows/security_audit.yml
vendored
Normal file
12
javascript-engine/external/boa/.github/workflows/security_audit.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
name: Security audit
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
jobs:
|
||||
audit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions-rs/audit-check@v1.2.0
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
118
javascript-engine/external/boa/.github/workflows/test262.yml
vendored
Normal file
118
javascript-engine/external/boa/.github/workflows/test262.yml
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
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)"
|
||||
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@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 }}
|
||||
49
javascript-engine/external/boa/.github/workflows/webassembly.yml
vendored
Normal file
49
javascript-engine/external/boa/.github/workflows/webassembly.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
name: Webassembly demo
|
||||
|
||||
jobs:
|
||||
check_style:
|
||||
name: Check webassembly demo style
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Check code formatting
|
||||
run: npx prettier --check .
|
||||
|
||||
build:
|
||||
name: Build webassembly demo
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
WASM_PACK_PATH: ~/.cargo/bin/wasm-pack
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions-rs/toolchain@v1.0.7
|
||||
with:
|
||||
toolchain: stable
|
||||
override: true
|
||||
profile: minimal
|
||||
- name: Install wasm-pack
|
||||
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
||||
- name: Cache npm build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
node_modules
|
||||
target
|
||||
~/.cargo/git
|
||||
~/.cargo/registry
|
||||
boa_wasm/pkg
|
||||
key: ${{ runner.os }}-npm-build-target-${{ hashFiles('**/package-lock.json') }}
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: "16"
|
||||
- run: npm ci
|
||||
- run: npm run build
|
||||
Reference in New Issue
Block a user