File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : Fuzzing
2+ on :
3+ schedule :
4+ # At 03:00 UTC (01:00 CEST) every day
5+ - cron : ' 0 3 * * *'
6+
7+ merge_group :
8+
9+ workflow_dispatch :
10+
11+ concurrency :
12+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
13+ cancel-in-progress : true
14+
15+ jobs :
16+
17+ build_and_test :
18+ runs-on : ${{ matrix.os }}
19+ name : Fuzzing
20+ strategy :
21+ matrix :
22+ os : [ubuntu-22.04, macos-14]
23+ jdk : [21, 8]
24+ include :
25+ - jdk : 21
26+ # Workaround for https://github.com/bazelbuild/bazel/issues/14502
27+ extra_bazel_args : " --jvmopt=-Djava.security.manager=allow"
28+ - os : ubuntu-22.04
29+ arch : " linux"
30+ - os : macos-14
31+ arch : " macos-arm64"
32+ bazel_args : " --xcode_version_config=//.github:host_xcodes"
33+
34+ steps :
35+ - uses : actions/checkout@v4
36+
37+ - name : Set up JDK
38+ uses : actions/setup-java@v4
39+ with :
40+ distribution : zulu
41+ java-version : 21
42+
43+ - name : Set Build Buddy config
44+ run : .github/scripts/echoBuildBuddyConfig.sh ${{ secrets.BUILDBUDDY_API_KEY }} >> $GITHUB_ENV
45+ shell : bash
46+
47+ - name : Cache Fuzzing Corpus
48+ uses : actions/cache@v4
49+ with :
50+ path : |
51+ selffuzz/src/test/resources/.corpus
52+
53+ key : fuzzing-corpus-${{ matrix.os }}-${{ matrix.jdk }}-${{ github.run_id }}-${{ github.run_attempt }}
54+ restore-keys : |
55+ fuzzing-corpus-
56+
57+ - name : Build & Fuzz
58+ run : |
59+ bazelisk run ${{env.BUILD_BUDDY_CONFIG}} --java_runtime_version=remotejdk_${{ matrix.jdk }} ${{ matrix.bazel_args }} ${{ matrix.extra_bazel_args }} //selffuzz/src/test/java/com/code_intelligence/selffuzz/mutation:ArgumentsMutatorFuzzTest --jvmopt=-Xmx10000m -- -runs=1000000
60+
61+ # Notification job that runs after all matrix jobs complete
62+ notification :
63+ needs : build_and_test
64+ runs-on : ubuntu-24.04
65+ if : failure() # Run regardless of build_and_test outcome
66+ steps :
67+ - name : Slack notification on failure
68+ run : |
69+ curl -X POST -H 'Content-type: application/json' \
70+ --data '{
71+ "workflow_url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
72+ }' \
73+ ${{ secrets.SLACK_WEBHOOK_URL }}
You can’t perform that action at this time.
0 commit comments