Skip to content

Add partial syntax, source maps, removed Keyword from AST and other… #140

Add partial syntax, source maps, removed Keyword from AST and other…

Add partial syntax, source maps, removed Keyword from AST and other… #140

name: Performance and size
on:
push:
branches: [main]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
run-benchmarks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- uses: brndnmtthws/rust-action-cargo-binstall@v1
with:
packages: hyperfine
- name: Build Ezno
run: cargo build --release
env:
CARGO_PROFILE_RELEASE_DEBUG: true
- name: Download files
run: |
curl https://esm.sh/v128/[email protected]/es2022/react-dom.mjs > react.js
- name: Run checker performance
shell: bash
run: |
# Generate a file which contains everything that Ezno currently implements
cargo run -p ezno-parser --example code_blocks_to_script ./checker/specification/specification.md demo.ts
echo "<details>
<summary>Input</summary>
\`\`\`ts
" >> $GITHUB_STEP_SUMMARY
cat demo.ts >> $GITHUB_STEP_SUMMARY
echo "\`\`\`
</details>
" >> $GITHUB_STEP_SUMMARY
# Printing diagnostics, so turn colors off for GH Summary
NO_COLOR=1
echo "<details>
<summary>Diagnostics</summary>
\`\`\`" >> $GITHUB_STEP_SUMMARY
./target/release/ezno check demo.ts --timings &>> $GITHUB_STEP_SUMMARY
echo "\`\`\`
</details>
" >> $GITHUB_STEP_SUMMARY
echo "### Checking
\`\`\`shell" >> $GITHUB_STEP_SUMMARY
hyperfine './target/release/ezno check demo.ts' >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
- name: Run parser, minfier/stringer performance
shell: bash
run: |
strings=(
"https://esm.sh/v128/[email protected]/es2022/react-dom.mjs"
"https://esm.sh/v135/[email protected]/es2022/typescript.mjs"
)
for url in "${strings[@]}"; do
curl $url > input.js
cargo run -p ezno-parser --example parse input.js --timings --render-timings
cargo run -p ezno-parser --release --example parse input.js --timings --render-timings
done