mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
Migrate the fuzzing workflow from GitHub-hosted ubuntu-latest to RunsOn 4cpu with s3-cache. Bump the container from the stale px4io/px4-dev:v1.16.0-rc2 to ghcr.io/px4/px4-dev:v1.17.0-rc2. Wire setup-ccache / save-ccache with cache-key-prefix ccache-sitl and max-size 300M, sharing the SITL build cache with checks:tests. Both build px4_sitl_test/px4_sitl_default so the ccache contents overlap significantly. Drop the manual apt install clang step since the v1.17.0-rc2 container already ships clang. Replace the git config --global safe.directory workaround with --system to match the repo convention. Add runs-on/action@v2 for the S3 cache proxy. Add fetch-depth: 1 since the fuzzer doesn't need git history. Signed-off-by: Ramon Roche <mrpollo@gmail.com>
59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
name: Fuzzing
|
|
on:
|
|
schedule:
|
|
- cron: '0 6 * * *' # UTC 6am every day.
|
|
|
|
permissions:
|
|
contents: read
|
|
issues: write # for JasonEtco/create-an-issue
|
|
|
|
env:
|
|
RUNS_IN_DOCKER: true
|
|
|
|
jobs:
|
|
Fuzzing:
|
|
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false,extras=s3-cache]
|
|
container:
|
|
image: ghcr.io/px4/px4-dev:v1.17.0-rc2
|
|
steps:
|
|
- uses: runs-on/action@v2
|
|
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 1
|
|
|
|
- name: Configure Git Safe Directory
|
|
run: git config --system --add safe.directory '*'
|
|
|
|
- uses: ./.github/actions/setup-ccache
|
|
id: ccache
|
|
with:
|
|
cache-key-prefix: ccache-sitl
|
|
max-size: 300M
|
|
|
|
- name: Build and Run Fuzz Tests
|
|
run: |
|
|
# Only build the tests
|
|
export CC=clang
|
|
export CXX=clang++
|
|
make tests TESTFILTER=__no_tests__
|
|
|
|
# Run the fuzz tests
|
|
for fuzz_binary in build/px4_sitl_test/*fuzz*; do
|
|
./Tools/ci/run_fuzz_tests.sh $fuzz_binary 15m
|
|
done
|
|
|
|
- uses: ./.github/actions/save-ccache
|
|
if: always()
|
|
with:
|
|
cache-primary-key: ${{ steps.ccache.outputs.cache-primary-key }}
|
|
|
|
- name: Create Issue
|
|
if: ${{ failure() }}
|
|
uses: JasonEtco/create-an-issue@v2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
WORKFLOW_RUN_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
with:
|
|
filename: .github/fuzzing_issue_template.md
|