Skip to content

Support non-standard RaptorQ symbol size (> 65536) #117

Support non-standard RaptorQ symbol size (> 65536)

Support non-standard RaptorQ symbol size (> 65536) #117

Workflow file for this run

name: CI
on:
pull_request:
branches: ["master", "release/**"]
concurrency:
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
WORKING_DIR: src
jobs:
audit:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ env.WORKING_DIR }}
steps:
- uses: actions/checkout@v5
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config clang libssl-dev libzstd-dev libgoogle-perftools-dev build-essential jq
- name: Install cargo-audit
run: cargo install --locked cargo-audit
- name: Run cargo-audit
run: |
set -euo pipefail
set +e
cargo audit --json > cargo-audit.json
AUDIT_EXIT=$?
set -e
TOTAL_COUNT=$(jq '[.vulnerabilities.list[]?] | length' cargo-audit.json)
CRITICAL_COUNT=$(jq '[.vulnerabilities.list[]? | select((((.advisory.cvss // 0) | tonumber?) // 0) >= 9)] | length' cargo-audit.json)
echo "cargo-audit report: ${TOTAL_COUNT} total vulnerabilities, ${CRITICAL_COUNT} critical."
if [ "${TOTAL_COUNT}" -gt 0 ]; then
echo "Detected advisories:"
jq -r '.vulnerabilities.list[]? | "- \(.advisory.id): \(.advisory.title) [\(.package.name) \(.package.version)] CVSS=\(.advisory.cvss // "n/a")"' cargo-audit.json
else
echo "No RustSec advisories found."
fi
if [ "${CRITICAL_COUNT}" -gt 0 ]; then
echo "Critical RustSec advisories detected. Failing CI."
exit 1
fi
if [ "${AUDIT_EXIT}" -ne 0 ] && [ "${TOTAL_COUNT}" -eq 0 ]; then
echo "cargo-audit failed for a non-advisory reason (exit ${AUDIT_EXIT})."
exit "${AUDIT_EXIT}"
fi
echo "No critical RustSec advisories found."
fmt:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ env.WORKING_DIR }}
steps:
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: rustfmt
- name: Check formatting
run: make fmt check=--check
check:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ${{ env.WORKING_DIR }}
steps:
- uses: actions/checkout@v5
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config clang libssl-dev libzstd-dev libgoogle-perftools-dev build-essential
- uses: Swatinem/rust-cache@v2
with:
workspaces: src -> target
shared-key: check
- name: Clippy
run: make clippy
- name: Check
run: cargo check --all --tests --release
tests:
runs-on:
group: ton-large
defaults:
run:
working-directory: ${{ env.WORKING_DIR }}
steps:
- uses: actions/checkout@v5
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config clang libssl-dev libzstd-dev libgoogle-perftools-dev build-essential
- uses: Swatinem/rust-cache@v2
with:
workspaces: src -> target
shared-key: tests
- name: Run cargo tests
run: NODE_SKIP_TEST_LOGS=yes make test
tests-net:
runs-on:
group: ton-large
defaults:
run:
working-directory: ${{ env.WORKING_DIR }}
steps:
- uses: actions/checkout@v5
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y pkg-config clang libssl-dev libzstd-dev libgoogle-perftools-dev build-essential xxd
- uses: Swatinem/rust-cache@v2
with:
workspaces: src -> target
shared-key: tests-net
- name: Run network test
run: cd node/tests/test_run_net && bash ./test_run_net_ci.sh