Skip to content

Debug stack overflow #302

Debug stack overflow

Debug stack overflow #302

Workflow file for this run

name: CI
on:
push:
tags:
- "v*.*.*"
branches:
- main
pull_request:
permissions:
checks: write
pull-requests: write
env:
CARGO_TERM_COLOR: always
WASI_SDK_VERSION: "25"
WASI_SDK_PATH: /opt/wasi-sdk
jobs:
build:
runs-on: blacksmith-16vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: Check formatting
run: cargo fmt -- --check
- name: Clippy
run: cargo clippy -- -Dwarnings
- name: Build
run: cargo build --all-targets
test-other:
needs: [build]
runs-on: blacksmith-16vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: Compilation, DTS and error tests
run: cargo test --test compilation --test dts --test errors -- --nocapture --report-time --format ctrf --logfile target/ctrf.json
- name: Publish Test Report
uses: ctrf-io/github-test-reporter@v1
if: always()
with:
report-path: "**/target/ctrf-*.json"
upload-artifact: "true"
artifact-name: test-other-report
summary: true
summary-report: true
failed-report: true
slowest-report: true
github-report: true
flaky-report: true
collapse-large-reports: true
exit-on-no-files: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
test-runtime:
needs: [build]
runs-on: blacksmith-16vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
group: [1, 2, 3, 4, 5, 6, 7, 8]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: Runtime tests under gdb (groups 1-2)
if: matrix.group == 1 || matrix.group == 2
run: bash .github/scripts/run-runtime-group-under-gdb.sh ${{ matrix.group }}
- name: Runtime tests (group ${{ matrix.group }}/8)
if: matrix.group != 1 && matrix.group != 2
run: cargo test --test runtime -- --nocapture --report-time --format ctrf --logfile target/ctrf.json ':tag:group${{ matrix.group }}'
- name: Upload gdb log
uses: actions/upload-artifact@v4
if: always() && (matrix.group == 1 || matrix.group == 2)
with:
name: test-runtime-group-${{ matrix.group }}-gdb-log
path: |
target/gdb-runtime-group${{ matrix.group }}.log
target/gdb-runtime-group${{ matrix.group }}.cmds
if-no-files-found: warn
- name: Publish Test Report
uses: ctrf-io/github-test-reporter@v1
if: always() && matrix.group != 1 && matrix.group != 2
with:
report-path: "**/target/ctrf-*.json"
upload-artifact: "true"
artifact-name: test-runtime-group-${{ matrix.group }}-report
summary: true
summary-report: true
failed-report: true
slowest-report: true
github-report: true
flaky-report: true
collapse-large-reports: true
exit-on-no-files: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
test-node-compat:
needs: [build]
runs-on: blacksmith-16vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
shard: [0, 1, 2, 3, 4, 5, 6, 7]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
- name: Vendor Node.js test suite
run: bash tests/node_compat/vendor.sh
- name: Node compat tests (shard ${{ matrix.shard }}/8)
run: cargo test --test node_compat -- --nocapture --report-time --format ctrf --logfile target/ctrf.json ':tag:shard${{ matrix.shard }}'
- name: Publish Test Report
uses: ctrf-io/github-test-reporter@v1
if: always()
with:
report-path: "**/target/ctrf-*.json"
upload-artifact: "true"
artifact-name: test-node-compat-shard-${{ matrix.shard }}-report
summary: true
summary-report: true
failed-report: true
slowest-report: true
github-report: true
flaky-report: true
collapse-large-reports: true
exit-on-no-files: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish:
needs: [test-other, test-runtime, test-node-compat]
if: "startsWith(github.ref, 'refs/tags/v')"
runs-on: blacksmith-16vcpu-ubuntu-2404
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: ./.github/actions/setup
with:
cache-key: release
- id: get_version
uses: battila7/get-version-action@v2
- name: Publish crates
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: |
export VERSION="${{ steps.get_version.outputs.version-without-v }}"
sed -i "s/0.0.0/$VERSION/g" Cargo.toml
cargo publish -p wasm-rquickjs --features optimize --allow-dirty
cargo publish -p wasm-rquickjs-cli --allow-dirty