Skip to content

feat(jans-cedarling): add custom linter for inefficient string concatenation #1392

feat(jans-cedarling): add custom linter for inefficient string concatenation

feat(jans-cedarling): add custom linter for inefficient string concatenation #1392

Workflow file for this run

name: Cedarling Testcases
on:
pull_request:
branches:
- main
paths:
- "jans-cedarling/**"
permissions:
contents: read
jobs:
rust_tests:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
with:
egress-policy: audit
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install Rust
uses: dtolnay/rust-toolchain@1ff72ee08e3cb84d84adba594e0a297990fc1ed3 # stable
- name: Run Tests
working-directory: jans-cedarling
run: |
cargo test --workspace
- name: Run Clippy on native target
working-directory: jans-cedarling
run: |
rustup component add clippy
cargo clippy --workspace --all-targets -- -D warnings
custom_lints:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
with:
egress-policy: audit
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install Rust Nightly
uses: dtolnay/rust-toolchain@1ff72ee08e3cb84d84adba594e0a297990fc1ed3
with:
toolchain: nightly-2025-09-18
components: llvm-tools-preview, rustc-dev
- uses: cargo-bins/cargo-binstall@v1.17.4
- name: Install dylint
run: |
cargo binstall cargo-dylint --version 5.0.0 --locked
cargo binstall dylint-link --version 5.0.0 --locked
- name: Run Tests
working-directory: jans-cedarling/custom-lints
run: cargo test
- name: Install Rust Stable (for workspace)
uses: dtolnay/rust-toolchain@1ff72ee08e3cb84d84adba594e0a297990fc1ed3 # stable
- name: Run custom lints on workspace
working-directory: jans-cedarling
run: |
RUSTFLAGS="-Dwarnings" cargo dylint --all --workspace --path custom-lints
rust_benchmarks:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
with:
egress-policy: audit
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install Rust
uses: dtolnay/rust-toolchain@1ff72ee08e3cb84d84adba594e0a297990fc1ed3 # stable
- name: Run benchmarks
working-directory: jans-cedarling
run: |
cargo bench --profile release
- name: Run script to analyze benchmarks
working-directory: jans-cedarling
run: |
python3 scripts/check_benchmarks.py
wasm_tests:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
with:
egress-policy: audit
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install chromium
run: sudo apt-get update && sudo apt-get install chromium-chromedriver
- name: Install Rust Stable
uses: dtolnay/rust-toolchain@1ff72ee08e3cb84d84adba594e0a297990fc1ed3 # stable
- name: Install specific wasm-pack version (v0.13.1)
run: |
curl -L https://github.com/rustwasm/wasm-pack/releases/download/v0.13.1/wasm-pack-v0.13.1-x86_64-unknown-linux-musl.tar.gz | tar xz -C /usr/local/bin --strip-components=1
wasm-pack --version
- name: Clean project
working-directory: jans-cedarling
run: cargo clean
- name: Run WASM tests using chrome
working-directory: jans-cedarling/bindings/cedarling_wasm
run: |
wasm-pack test --headless --chrome
- name: Run WASM tests using firefox
working-directory: jans-cedarling/bindings/cedarling_wasm
run: |
wasm-pack test --headless --firefox
- name: Run Clippy on WASM target
working-directory: jans-cedarling
run: |
rustup component add clippy
rustup target add wasm32-unknown-unknown
cargo clippy -p cedarling_wasm --target wasm32-unknown-unknown -- -D warnings
python_tests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11"]
steps:
- name: Harden Runner
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
with:
egress-policy: audit
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip || echo "Failed to upgrade pip"
python3 -m pip install tox
- name: Test with pytest
working-directory: jans-cedarling/bindings/cedarling_python
run: |
tox
golang_tests:
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@a4aa98b93cab29d9b1101a6143fb8bce00e2eac4 # v2.7.1
with:
egress-policy: audit
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install Rust
uses: dtolnay/rust-toolchain@1ff72ee08e3cb84d84adba594e0a297990fc1ed3 # stable
- name: Install Golang dependencies
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
with:
go-version: '1.24'
- name: Run build rust artifacts
working-directory: jans-cedarling/bindings/cedarling_go
run: |
rustup component add clippy
cargo build -r -p cedarling_go
cp "../../target/release/libcedarling_go.so" "."
- name: Install Go dependencies
working-directory: jans-cedarling/bindings/cedarling_go
run: |
go mod download && go mod tidy
- name: Run golang tests
working-directory: jans-cedarling/bindings/cedarling_go
run: |
export LD_LIBRARY_PATH="$(pwd):${LD_LIBRARY_PATH}"
go test .