feat: add dependency
This commit is contained in:
1
javascript-engine/external/boa/.github/FUNDING.yml
vendored
Normal file
1
javascript-engine/external/boa/.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
open_collective: boa
|
||||
52
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
52
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
name: "\U0001F41B Bug report"
|
||||
about: Create a report to help us improve
|
||||
title: ""
|
||||
labels: bug
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
<!--
|
||||
Thank you for reporting a bug in Boa! This will make us improve the engine. But first, fill the following template so that we better understand what's happening. Feel free to add or remove sections as you feel appropriate.
|
||||
-->
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
<!-- E.g.:
|
||||
The variable statement is not working as expected, it always adds 10 when assigning a number to a variable"
|
||||
-->
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the issue, or JavaScript code that causes this failure.
|
||||
|
||||
<!-- E.g.:
|
||||
This JavaScript code reproduces the issue:
|
||||
```javascript
|
||||
var a = 10;
|
||||
a;
|
||||
```
|
||||
-->
|
||||
|
||||
**Expected behavior**
|
||||
Explain what you expected to happen, and what is happening instead.
|
||||
|
||||
<!-- E.g.:
|
||||
Running this code, `a` should be set to `10` and printed, but `a` is instead set to `20`. The expected behaviour can be found in the [ECMAScript specification][spec].
|
||||
|
||||
[spec]: https://tc39.es/ecma262/#sec-variable-statement-runtime-semantics-evaluation
|
||||
-->
|
||||
|
||||
**Build environment (please complete the following information):**
|
||||
|
||||
- OS: [e.g. Fedora Linux]
|
||||
- Version: [e.g. 32]
|
||||
- Target triple: [e.g. x86_64-unknown-linux-gnu]
|
||||
- Rustc version: [e.g. rustc 1.43.0 (4fb7144ed 2020-04-20), running `rustc -V`]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
||||
<!-- E.g.:
|
||||
You can find more information in [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var).
|
||||
-->
|
||||
5
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Discord channel
|
||||
url: https://discord.gg/tUFFk9Y
|
||||
about: Please ask and answer questions here.
|
||||
13
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/custom.md
vendored
Normal file
13
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/custom.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: Custom
|
||||
about: Open an issue in the repo that is neither a bug or a feature, such a new idea
|
||||
title: ""
|
||||
labels: ""
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
<!--
|
||||
Thank you for contributing to Boa! Please, let us know how can we help you.
|
||||
-->
|
||||
|
||||
E.g.: I think we should improve the way the JavaScript interpreter works by...
|
||||
43
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
43
javascript-engine/external/boa/.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: "\U0001F680 Feature request"
|
||||
about: Suggest a new ECMAScript feature to be implemented, or a new capability of the engine.
|
||||
title: ""
|
||||
labels: enhancement
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
<!--
|
||||
Thank you for adding a feature request to Boa! As this is an experimental JavaScript engine, there will probably be many ECMAScript features left to implement. In order to understand the feature request as best as possible, please fill the following template. Feel free to add or remove sections as needed.
|
||||
-->
|
||||
|
||||
**ECMASCript feature**
|
||||
Explain the ECMAScript feature that you'd like to see implemented.
|
||||
|
||||
<!-- E.g.:
|
||||
I would like to see `switch` statement parsing and execution implemented. [ECMAScript specification][spec].
|
||||
|
||||
[spec]: https://tc39.es/ecma262/#sec-switch-statement
|
||||
-->
|
||||
|
||||
**Example code**
|
||||
Give a code example that should work after the implementation of this feature.
|
||||
|
||||
<!-- E.g.:
|
||||
This code should now work and give the expected result:
|
||||
```javascript
|
||||
let a = "hello";
|
||||
let b;
|
||||
switch (a) {
|
||||
case 'hello':
|
||||
b = 'world';
|
||||
break;
|
||||
case 'world':
|
||||
b = 'hello';
|
||||
break;
|
||||
default:
|
||||
b = 'hello world';
|
||||
}
|
||||
b;
|
||||
```
|
||||
The expected output is `world`.
|
||||
-->
|
||||
12
javascript-engine/external/boa/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
12
javascript-engine/external/boa/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<!---
|
||||
Thank you for contributing to Boa! Please fill out the template below, and remove or add any
|
||||
information as you feel necessary.
|
||||
--->
|
||||
|
||||
This Pull Request fixes/closes #{issue_num}.
|
||||
|
||||
It changes the following:
|
||||
|
||||
-
|
||||
-
|
||||
-
|
||||
10
javascript-engine/external/boa/.github/codecov.yml
vendored
Normal file
10
javascript-engine/external/boa/.github/codecov.yml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
github_checks:
|
||||
annotations: false
|
||||
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
threshold: 5% # allow 5% coverage variance
|
||||
|
||||
patch: off
|
||||
50
javascript-engine/external/boa/.github/dependabot.yml
vendored
Normal file
50
javascript-engine/external/boa/.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: npm
|
||||
directory: /
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: github-actions
|
||||
directory: /
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_cli/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_engine/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_gc/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_interner/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_profiler/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_tester/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_unicode/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: cargo
|
||||
directory: /boa_wasm/
|
||||
schedule:
|
||||
interval: daily
|
||||
- package-ecosystem: gitsubmodule
|
||||
directory: /
|
||||
schedule:
|
||||
interval: weekly
|
||||
16
javascript-engine/external/boa/.github/release.yml
vendored
Normal file
16
javascript-engine/external/boa/.github/release.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# .github/release.yml
|
||||
|
||||
changelog:
|
||||
exclude:
|
||||
authors:
|
||||
- dependabot
|
||||
categories:
|
||||
- title: Feature Enhancements
|
||||
labels:
|
||||
- enhancement
|
||||
- title: Bug Fixes
|
||||
labels:
|
||||
- bug
|
||||
- title: Internal Improvements
|
||||
labels:
|
||||
- Internal
|
||||
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