Skip to content

Implement websocket API #293

Implement websocket API

Implement websocket API #293

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 (group ${{ matrix.group }}/8)
run: cargo test --test runtime -- --nocapture --report-time --format ctrf --logfile target/ctrf.json ':tag:group${{ matrix.group }}'
- 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-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