Files
ardupilot/.github/workflows/test_ccache.yml
T
James HarveyandClaude Opus 5 20fe331ef4 .github: do not run CI on tag pushes
The release procedure pushes about twenty tags at a single commit: the
per-vehicle -stable and -beta tags and the numbered ones such as
Copter-4.7.1.  Only pre-commit.yml's push trigger carries a branch
filter, so every other workflow runs for each of those tag pushes, and
path filters are not evaluated for tag pushes, so the paths-ignore
lists do not thin them out.  The 4.7.1 release produced 438 push-event
runs for one commit; 18 came from the ArduPilot-4.7 branch push and
the other 420 from the tags, each re-running the same jobs on the same
commit.  4.7.0 produced 437, and the pattern goes back to at least
4.6.2.

Filter push triggers to branches.  '**' matches every branch, so branch
pushes behave exactly as before; tag pushes stop triggering workflows.
The tags still show the commit's checks, since check results attach to
the commit; those are the release-branch push's runs, trimmed by the
usual path filters as on any other branch.

test_scripts.yml used the list form of 'on', which cannot carry a
filter, so it is expanded to the mapping form.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-05 09:09:22 +10:00

153 lines
4.2 KiB
YAML

name: test ccache
on:
push:
branches: ['**'] # excludes tag pushes
paths-ignore:
# remove other vehicles
- 'AntennaTracker/**'
- 'ArduPlane/**'
- 'ArduSub/**'
- 'Blimp/**'
- 'Rover/**'
# remove non chibios HAL
- 'libraries/AP_HAL_Linux/**'
- 'libraries/AP_HAL_ESP32/**'
- 'libraries/AP_HAL_SITL/**'
# remove non stm directories
- 'Tools/cameras_gimbals/**'
- 'Tools/CHDK-Scripts/**'
- 'Tools/CodeStyle/**'
- 'Tools/completion/**'
- 'Tools/CPUInfo/**'
- 'Tools/debug/**'
- 'Tools/environment_install/**'
- 'Tools/FilterTestTool/**'
- 'Tools/Frame_params/**'
- 'Tools/geotag/**'
- 'Tools/GIT_Test/**'
- 'Tools/gittools/**'
- 'Tools/Hello/**'
- 'Tools/Linux_HAL_Essentials/**'
- 'Tools/mavproxy_modules/**'
- 'Tools/Pozyx/**'
- 'Tools/PrintVersion.py'
- 'Tools/Replay/**'
- 'Tools/simulink/**'
- 'Tools/terrain-tools/**'
- 'Tools/UDP_Proxy/**'
- 'Tools/vagrant/**'
- 'Tools/Vicon/**'
# Remove autotests stuff
- 'Tools/autotest/**'
# Remove markdown files as irrelevant
- '**.md'
# Remove dotfile at root directory
- '.dir-locals.el'
- '.dockerignore'
- '.editorconfig'
- '.flake8'
- '.gitattributes'
- '.gitignore'
- '.pre-commit-config.yaml'
- '.pydevproject'
- '.valgrind-suppressions'
- '.valgrindrc'
- 'Dockerfile'
- 'Vagrantfile'
- 'Makefile'
# Remove some directories check
- '.vscode/**'
# Remove change on other workflows
- '.github/**'
- '!.github/workflows/test_ccache.yml' # except this one
pull_request:
paths-ignore:
# remove other vehicles
- 'AntennaTracker/**'
- 'ArduPlane/**'
- 'ArduSub/**'
- 'Blimp/**'
- 'Rover/**'
# remove non chibios HAL
- 'libraries/AP_HAL_Linux/**'
- 'libraries/AP_HAL_ESP32/**'
- 'libraries/AP_HAL_SITL/**'
# remove non stm directories
- 'Tools/cameras_gimbals/**'
- 'Tools/CHDK-Scripts/**'
- 'Tools/CodeStyle/**'
- 'Tools/completion/**'
- 'Tools/CPUInfo/**'
- 'Tools/debug/**'
- 'Tools/environment_install/**'
- 'Tools/FilterTestTool/**'
- 'Tools/Frame_params/**'
- 'Tools/geotag/**'
- 'Tools/GIT_Test/**'
- 'Tools/gittools/**'
- 'Tools/Hello/**'
- 'Tools/Linux_HAL_Essentials/**'
- 'Tools/mavproxy_modules/**'
- 'Tools/Pozyx/**'
- 'Tools/PrintVersion.py'
- 'Tools/Replay/**'
- 'Tools/simulink/**'
- 'Tools/terrain-tools/**'
- 'Tools/UDP_Proxy/**'
- 'Tools/vagrant/**'
- 'Tools/Vicon/**'
# Remove autotests stuff
- 'Tools/autotest/**'
# Remove markdown files as irrelevant
- '**.md'
# Remove dotfile at root directory
- '.dir-locals.el'
- '.dockerignore'
- '.editorconfig'
- '.flake8'
- '.gitattributes'
- '.gitignore'
- '.pre-commit-config.yaml'
- '.pydevproject'
- '.valgrind-suppressions'
- '.valgrindrc'
- 'Dockerfile'
- 'Vagrantfile'
- 'Makefile'
# Remove some directories check
- '.vscode/**'
# Remove change on other workflows
- '.github/**'
- '!.github/workflows/test_ccache.yml' # except this one
workflow_dispatch:
concurrency:
group: ci-${{github.workflow}}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-22.04
container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.2.0
strategy:
fail-fast: false # don't cancel if a job from the matrix fails
matrix:
toolchain: [
chibios,
]
gcc: [10]
steps:
# git checkout the PR
- uses: actions/checkout@v7
with:
submodules: 'recursive'
- name: ccache test
shell: bash
run: |
PATH="/usr/lib/ccache:/opt/gcc-arm-none-eabi-${{matrix.gcc}}/bin:$PATH"
Tools/scripts/build_tests/test_ccache.py --boards MatekF405-bdshot,MatekF405-TE-bdshot --min-cache-pct=75
Tools/scripts/build_tests/test_ccache.py --boards Durandal-bdshot,Pixhawk6X --min-cache-pct=60