name: Fuzzing on: [pull_request] permissions: # added using https://github.com/step-security/secure-workflows contents: read jobs: # Run all fuzzing tests. Some of them use Go 1.18's testing.F. # Others use https://github.com/AdaLogics/go-fuzz-headers. ci_fuzz: name: CI Fuzz if: github.repository == 'containerd/containerd' runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Build Fuzzers id: build uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master with: oss-fuzz-project-name: 'containerd' language: go - name: Run Fuzzers uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master with: oss-fuzz-project-name: 'containerd' fuzz-seconds: 300 language: go continue-on-error: true - name: Upload Crash uses: actions/upload-artifact@v1 if: failure() && steps.build.outcome == 'success' with: name: artifacts path: ./out/artifacts # Make sure all fuzzing tests which use Go 1.18's testing.F are # runnable with go test -fuzz. go_test_fuzz: name : go test -fuzz if: github.repository == 'containerd/containerd' runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/setup-go@v3 with: # FIXME: go-fuzz fails with Go 1.20: `cgo_unix_cgo_res.cgo2.c:(.text+0x32): undefined reference to `__res_search'` # https://github.com/containerd/containerd/pull/8103#issuecomment-1429256152 go-version: 1.18 - uses: actions/checkout@v3 - run: script/go-test-fuzz.sh