Skip to content

feat(client)!: report why the client could not connect to the engine #107

feat(client)!: report why the client could not connect to the engine

feat(client)!: report why the client could not connect to the engine #107

Workflow file for this run

name: Fuzz
on:
push:
branches:
- main
pull_request:
schedule:
# Nightly at 03:17 UTC. Long runs on main grow the shared corpus.
- cron: '17 3 * * *'
workflow_dispatch:
inputs:
fuzztime:
description: How long to fuzz each target (Go duration, e.g. 5m)
default: 10m
type: string
permissions:
contents: read
jobs:
fuzz:
name: Fuzz
runs-on: ubuntu-latest
env:
# Pull requests and pushes get a short smoke run. Nightly and manual
# runs fuzz each target for longer.
FUZZTIME: ${{ inputs.fuzztime || (github.event_name == 'schedule' && '10m') || '30s' }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Setup Go
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
with:
go-version-file: go.work
# Go stores the corpus it generates under $GOCACHE/fuzz. Restoring the
# most recent corpus lets every run build on the interesting inputs
# that earlier runs found instead of restarting from the seeds.
- name: Restore fuzz corpus
id: corpus
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/go-build/fuzz
key: fuzz-corpus-${{ github.run_id }}
restore-keys: fuzz-corpus-
- name: Fuzz
run: make fuzz FUZZTIME="$FUZZTIME"
- name: Save fuzz corpus
if: always()
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.cache/go-build/fuzz
key: ${{ steps.corpus.outputs.cache-primary-key }}
# A failing fuzz run writes the crashing input to
# testdata/fuzz/<FuzzName>/<hash> next to the test. Keep it so the
# failure can be reproduced locally and committed as a regression test.
- name: Upload failing inputs
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: fuzz-failing-inputs
path: |
**/testdata/fuzz/**
!vendor/**
if-no-files-found: ignore