Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to '.github/workflows/fuzz.yml')
-rw-r--r--.github/workflows/fuzz.yml43
1 files changed, 43 insertions, 0 deletions
diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml
new file mode 100644
index 0000000000..5af8aa1f77
--- /dev/null
+++ b/.github/workflows/fuzz.yml
@@ -0,0 +1,43 @@
+name: Fuzz
+on:
+ schedule:
+ # Once a week
+ - cron: '0 0 * * 0'
+ push:
+ paths:
+ - '.github/workflows/fuzz.yml'
+ # Allow manual trigger
+ workflow_dispatch:
+
+env:
+ CARGO_INCREMENTAL: 0
+ CARGO_NET_RETRY: 10
+ CI: 1
+ RUST_BACKTRACE: short
+ RUSTFLAGS: "-D warnings -W unreachable-pub -W bare-trait-objects"
+ RUSTUP_MAX_RETRIES: 10
+
+jobs:
+ rust:
+ if: ${{ github.repository == 'rust-lang/rust-analyzer' || github.event.action == 'workflow_dispatch' }}
+ name: Rust
+ runs-on: ubuntu-latest
+ env:
+ CC: deny_c
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.pull_request.head.sha }}
+ fetch-depth: 1
+
+ - name: Install Rust toolchain
+ run: |
+ rustup install --profile minimal nightly
+
+ - name: Build fuzzers
+ run: |
+ cargo install cargo-fuzz
+ cd crates/syntax
+ cargo +nightly fuzz build