[Fuzzing] add cifuzz #1036
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Workflow to run tests, publish coverage to codecov and run SonarCloud scan | |
name: Test | |
# Run for events in main repository (for forked repository look in test-for-fork.yml) | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
test: | |
# don't run for forks | |
if: github.event_name == 'push' || | |
(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) || | |
github.event_name == 'workflow_dispatch' | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
steps: | |
- name: Set up Go 1.18+ | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "^1.18" | |
check-latest: true | |
- run: go version | |
# Checks-out repository under $GITHUB_WORKSPACE | |
- name: Checkout | |
if: ${{!startsWith(matrix.os, 'ubuntu')}} | |
uses: actions/checkout@v3 | |
# Checks-out repository under $GITHUB_WORKSPACE with tags and history (needed by "SonarCloud Scan" step) | |
- name: Full checkout | |
if: startsWith(matrix.os,'ubuntu') | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Full clone for SonarCloud | |
# Build everything | |
- name: Run a build | |
run: go build ./... | |
# Runs a single command using the runners shell, -p1 for `race: limit on 8128 simultaneously alive goroutines is exceeded, dying` at macos | |
- name: Run a test | |
run: go test -v -race ./... -coverpkg=./... -covermode=atomic -coverprofile=./coverage.txt | |
# Skip this step when running from forked repository (no write privileges) | |
- name: Publish the coverage | |
if: startsWith(matrix.os,'ubuntu') | |
run: bash <(curl -s https://codecov.io/bash) | |
# Skip this step when running from forked repository (no access to ${{ secrets }}) | |
- name: SonarCloud Scan | |
if: startsWith(matrix.os,'ubuntu') | |
uses: SonarSource/sonarcloud-github-action@master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |