diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a7491a85a..51a17c7c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,3 +1,4 @@ +--- name: CI on: [push, pull_request] @@ -15,6 +16,7 @@ jobs: env: DEBUG: true + GOFLAGS: -trimpath KAFKA_VERSION: ${{ matrix.kafka-version }} steps: @@ -25,9 +27,18 @@ jobs: with: go-version: ${{ matrix.go-version }} - - uses: actions/cache@v2 + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + + - name: Set up cache + uses: actions/cache@v2 with: - path: ~/go/pkg/mod + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml new file mode 100644 index 000000000..1e4314ef4 --- /dev/null +++ b/.github/workflows/fuzz.yml @@ -0,0 +1,42 @@ +--- +name: Fuzzing + +on: [push, pull_request] + +jobs: + test: + name: Fuzz + runs-on: ubuntu-latest + + env: + GOFLAGS: -trimpath + + steps: + - uses: actions/checkout@v2 + + - name: Setup Go + uses: actions/setup-go@v2 + with: + go-version: 1.17.x + + - name: Get Go environment + id: go-env + run: | + echo "::set-output name=cache::$(go env GOCACHE)" + echo "::set-output name=modcache::$(go env GOMODCACHE)" + + - name: Set up cache + uses: actions/cache@v2 + with: + path: | + ${{ steps.go-env.outputs.cache }} + ${{ steps.go-env.outputs.modcache }} + key: fuzz-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + fuzz-go- + + - name: Build Go tip + run: go install golang.org/dl/gotip@latest && gotip download + + - name: Run any fuzzing tests + run: gotip test -v -run=^Fuzz -test.fuzztime=5m ./...