Skip to content

L0: model-written text in text slots, strict actions, in-card chat #425

L0: model-written text in text slots, strict actions, in-card chat

L0: model-written text in text slots, strict actions, in-card chat #425

Workflow file for this run

name: CI
on:
push:
pull_request:
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-unknown-linux-gnu,riscv64gc-unknown-linux-gnu,x86_64-pc-windows-gnu
- run: |
sudo apt-get update
sudo apt-get install --yes bubblewrap
- run: cargo fmt --check
- run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- run: cargo test --workspace --all-features
# Library consumers build these crates without serde_json's global
# arbitrary_precision; test that configuration and keep it out of their graph.
- run: cargo test -p octoscript-schema -p octoscript-capabilities -p octoscript-workflow
- run: >
! cargo tree -e normal,features -i serde_json
-p octoscript-schema -p octoscript-capabilities -p octoscript-workflow
| grep arbitrary_precision
- run: cargo check --locked -p octoscript-sandbox --tests --target aarch64-unknown-linux-gnu
- run: cargo check --locked -p octoscript-sandbox --tests --target riscv64gc-unknown-linux-gnu
- run: cargo check --locked -p octoscript-sandbox --tests --target x86_64-pc-windows-gnu
# The VM is a pinned git dependency (OctoSense-org/makepad, branch octoscript);
# -p resolves it from Cargo.lock so no separate checkout or second pin is needed.
- run: cargo test -p makepad-script
- run: cargo test -p makepad-regex
# The project-quota positive-path test requires an explicitly provisioned host fixture.
- run: >
sudo -E env RUSTUP_HOME="$HOME/.rustup"
"$CARGO_HOME/bin/cargo" test --locked -p octoscript-sandbox --lib -- --ignored
- run: >
sudo -E env RUSTUP_HOME="$HOME/.rustup"
"$CARGO_HOME/bin/cargo" test --locked -p octoscript-sandbox --test cgroup_v2 -- --ignored
fuzz-target:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustfmt
- run: cargo install cargo-fuzz --version 0.13.2 --locked
- run: cargo +nightly fmt --manifest-path fuzz/Cargo.toml --check
- run: RUSTFLAGS='--cfg fuzzing' cargo +nightly check --locked --manifest-path fuzz/Cargo.toml
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none syntax --
-runs=128 -max_len=16384 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none lsp_document --
-runs=128 -max_len=16384 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none mobile_dataflow --
-runs=128 -max_len=16384 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none mobile_workflow --
-runs=128 -max_len=16384 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none execution --
-runs=128 -max_len=8192 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none execution_replay --
-runs=128 -max_len=8192 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none execution_limits --
-runs=128 -max_len=8192 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none bubblewrap_policy --
-runs=128 -max_len=64
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none http_origin_policy --
-runs=128 -max_len=4096
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none secret_broker --
-runs=128 -max_len=1024
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none rollback_anchor_service --
-runs=128 -max_len=8192
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none workflow_draft --
-runs=128 -max_len=65536
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none capability_lease --
-runs=128 -max_len=8192
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none workflow_external_operation --
-runs=128 -max_len=65536
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none workflow_event_journal --
-runs=128 -max_len=196608
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none capability_audit_journal --
-runs=128 -max_len=196608
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none cross_stream_telemetry --
-runs=128 -max_len=4096
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none durable_cross_stream_telemetry --
-runs=128 -max_len=196608
working-directory: fuzz
- run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run --sanitizer none json_line_worker --
-runs=128 -max_len=1048578
working-directory: fuzz
fuzz-memory-safety:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- run: cargo install cargo-fuzz --version 0.13.2 --locked
- name: AddressSanitizer evaluator fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run execution --
-runs=128 -max_len=8192 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- name: AddressSanitizer evaluator replay fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run execution_replay --
-runs=128 -max_len=8192 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- name: AddressSanitizer LSP document fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run lsp_document --
-runs=128 -max_len=16384 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- name: AddressSanitizer sealed mobile dataflow fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run mobile_dataflow --
-runs=128 -max_len=16384 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- name: AddressSanitizer sealed mobile workflow fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run mobile_workflow --
-runs=128 -max_len=16384 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- name: AddressSanitizer variable-limit evaluator fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run execution_limits --
-runs=128 -max_len=8192 -dict=$GITHUB_WORKSPACE/fuzz/dictionaries/syntax.dict
working-directory: fuzz
- name: AddressSanitizer Bubblewrap policy compiler fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run bubblewrap_policy --
-runs=128 -max_len=64
working-directory: fuzz
- name: AddressSanitizer exact-origin HTTP policy fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run http_origin_policy --
-runs=128 -max_len=4096
working-directory: fuzz
- name: AddressSanitizer capability secret-broker fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run secret_broker --
-runs=128 -max_len=1024
working-directory: fuzz
- name: AddressSanitizer rollback-anchor service fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run rollback_anchor_service --
-runs=128 -max_len=8192
working-directory: fuzz
- name: AddressSanitizer capability-lease fuzzing
run: >
RUSTFLAGS='--cfg fuzzing' cargo +nightly fuzz run capability_lease --
-runs=128 -max_len=8192
working-directory: fuzz
miri-vm-regression:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
with:
components: miri
- run: cargo +nightly miri setup
- name: Check re-entrant VM body reload under Miri
run: >
cargo +nightly miri test -p makepad-script
reentrant_reload_of_the_active_body_does_not_keep_an_opcode_pointer