Skip to content

Add a subcommand to build a clusterfuzz tarball #357

Add a subcommand to build a clusterfuzz tarball

Add a subcommand to build a clusterfuzz tarball #357

Workflow file for this run

on:
push:
branches:
- master
pull_request:
branches:
- master
name: ci
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Ubuntu Dependencies
run: |
sudo apt-get update
sudo apt-get install binutils-dev libunwind-dev
- uses: actions-rs/toolchain@v1.0.7
id: toolchain
with:
toolchain: stable
profile: minimal
override: true
components: rustfmt, clippy
- uses: actions/checkout@v3.5.3
- name: Format
uses: actions-rs/cargo@v1.0.3
with:
command: fmt
args: --all -- --check
- name: Clippy
uses: actions-rs/cargo@v1.0.3
with:
command: clippy
args: -- -D warnings
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
rust: [1.57.0, 1.64.0, stable, nightly]
os: [ubuntu-latest, macOS-latest]
# TODO add honggfuzz back
test: [unit-tests, unit-tests-no-1.57, build-no-default-features, libfuzzer, afl, examples-tests]
sanitizer: [NONE]
exclude:
- rust: 1.57.0
test: unit-tests-no-1.57
# honggfuzz is broken on macOS
- os: macos-latest
test: honggfuzz
include:
- rust: nightly
os: ubuntu-latest
test: libfuzzer
sanitizer: address
# - rust: nightly
# os: ubuntu-latest
# test: honggfuzz
# sanitizer: address
# TODO fix this
# - rust: nightly
# os: ubuntu-latest
# test: afl
# sanitizer: address
- rust: nightly
os: macOS-latest
test: libfuzzer
sanitizer: address
# - rust: nightly
# os: macOS-latest
# test: honggfuzz
# sanitizer: address
# TODO fix this
# - rust: nightly
# os: macOS-latest
# test: afl
# sanitizer: address
steps:
- name: Ubuntu setup
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install binutils-dev libunwind-dev
echo 'core' | sudo tee /proc/sys/kernel/core_pattern
- name: macOS setup
if: matrix.os == 'macOS-latest'
run: |
export SL=/System/Library
export PL=com.apple.ReportCrash
launchctl unload -w ${SL}/LaunchAgents/${PL}.plist
sudo launchctl unload -w ${SL}/LaunchDaemons/${PL}.Root.plist
- uses: actions/checkout@v3.5.3
- uses: actions-rs/toolchain@v1.0.7
id: toolchain
with:
toolchain: ${{ matrix.rust }}
profile: minimal
override: true
- uses: camshaft/rust-cache@v1
with:
key: ${{ matrix.test }}-${{ matrix.sanitizer }}
- name: ${{ matrix.test }}
run: make ${{ matrix.test }}
env:
AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES: 1
AFL_SKIP_CPUFREQ: 1
SANITIZER: ${{ matrix.sanitizer }}
kani:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.5.3
- uses: actions-rs/toolchain@v1.0.7
id: toolchain
with:
toolchain: stable
profile: minimal
override: true
- name: Kani run
uses: model-checking/kani-github-action@v0.31
with:
working-directory: examples/basic
args: --tests
# run integration tests with our main consumers
integration:
runs-on: ubuntu-latest
strategy:
matrix:
repo: ["aws/s2n-quic"]
steps:
- uses: actions/checkout@v3.5.3
- uses: actions/checkout@v3.5.3
with:
repository: ${{ matrix.repo }}
path: "target/integration/${{ matrix.repo }}"
- uses: actions-rs/toolchain@v1.0.7
id: toolchain
with:
toolchain: stable
profile: minimal
override: true
- name: Add patch
working-directory: target/integration/${{ matrix.repo }}
# TODO move this into a script: https://github.com/camshaft/bolero/issues/132
run: |
cat <<EOF >> Cargo.toml
[patch.crates-io]
bolero = { path = "../../../../bolero" }
bolero-engine = { path = "../../../../bolero-engine" }
bolero-generator = { path = "../../../../bolero-generator" }
bolero-generator-derive = { path = "../../../../bolero-generator-derive" }
EOF
- uses: camshaft/rust-cache@v1
with:
key: ${{ matrix.repo }}
- name: Build
working-directory: target/integration/${{ matrix.repo }}
run: cargo build --tests
- name: Tests
working-directory: target/integration/${{ matrix.repo }}
run: cargo test