forked from ArduPilot/ardupilot
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f0442be
commit 6b4fcb6
Showing
1 changed file
with
211 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,211 @@ | ||
# Periodically compare this script to test_chibios.yml. They should be kept | ||
# mostly in sync. Mainly make sure this is running the same docker image and | ||
# toolchain. I've done a lot of awkward things in the matrix strategy to | ||
# minimize the differences between the two files to make it easier to keep them | ||
# in sync. | ||
name: ArgenTech Build | ||
|
||
on: | ||
push: | ||
branches: | ||
- ArgenTech | ||
- master | ||
paths-ignore: | ||
# remove non chibios HAL | ||
- 'libraries/AP_HAL_Linux/**' | ||
- 'libraries/AP_HAL_ESP32/**' | ||
- 'libraries/AP_HAL_SITL/**' | ||
# remove non stm directories | ||
- 'Tools/CHDK-Script/**' | ||
- 'Tools/CodeStyle/**' | ||
- 'Tools/completion/**' | ||
- 'Tools/debug/**' | ||
- 'Tools/environment_install/**' | ||
- 'Tools/FilterTestTool/**' | ||
- 'Tools/Frame_params/**' | ||
- 'Tools/geotag/**' | ||
- 'Tools/GIT_Test/**' | ||
- 'Tools/gittools/**' | ||
- 'Tools/Hello/**' | ||
- 'Tools/LogAnalyzer/**' | ||
- 'Tools/mavproxy_modules/**' | ||
- 'Tools/Pozyx/**' | ||
- 'Tools/PrintVersion.py' | ||
- 'Tools/Replay/**' | ||
- 'Tools/simulink/**' | ||
- 'Tools/UDP_Proxy/**' | ||
- 'Tools/vagrant/**' | ||
- 'Tools/Vicon/**' | ||
# Remove vehicles autotest we need support of test_build_option.py in the Tools/autotest directory | ||
- 'Tools/autotest/antennatracker.py' | ||
- 'Tools/autotest/arduplane.py' | ||
- 'Tools/autotest/ardusub.py' | ||
- 'Tools/autotest/balancebot.py' | ||
- 'Tools/autotest/location.txt' | ||
- 'Tools/autotest/quadplane.py' | ||
- 'Tools/autotest/rover.py' | ||
- 'Tools/autotest/sailboat.py' | ||
- 'Tools/autotest/swarminit.txt' | ||
# Remove markdown files as irrelevant | ||
- '**.md' | ||
# Remove dotfile at root directory | ||
- './.dir-locals.el' | ||
- './.dockerignore' | ||
- './.editorconfig' | ||
- './.flake8' | ||
- './.gitattributes' | ||
- './.github' | ||
- './.gitignore' | ||
- './.pre-commit-config.yaml' | ||
- './.pydevproject' | ||
- './.valgrind-suppressions' | ||
- './.valgrindrc' | ||
- 'Dockerfile' | ||
- 'Vagrantfile' | ||
- 'Makefile' | ||
# Remove some directories check | ||
- '.vscode/**' | ||
- '.github/ISSUE_TEMPLATE/**' | ||
# Remove change on other workflows | ||
- '.github/workflows/test_environment.yml' | ||
|
||
pull_request: | ||
paths-ignore: | ||
# remove non chibios HAL | ||
- 'libraries/AP_HAL_Linux/**' | ||
- 'libraries/AP_HAL_ESP32/**' | ||
- 'libraries/AP_HAL_SITL/**' | ||
# remove non stm directories | ||
- 'Tools/CHDK-Script/**' | ||
- 'Tools/CodeStyle/**' | ||
- 'Tools/completion/**' | ||
- 'Tools/debug/**' | ||
- 'Tools/environment_install/**' | ||
- 'Tools/FilterTestTool/**' | ||
- 'Tools/Frame_params/**' | ||
- 'Tools/geotag/**' | ||
- 'Tools/GIT_Test/**' | ||
- 'Tools/gittools/**' | ||
- 'Tools/Hello/**' | ||
- 'Tools/LogAnalyzer/**' | ||
- 'Tools/mavproxy_modules/**' | ||
- 'Tools/Pozyx/**' | ||
- 'Tools/PrintVersion.py' | ||
- 'Tools/Replay/**' | ||
- 'Tools/simulink/**' | ||
- 'Tools/UDP_Proxy/**' | ||
- 'Tools/vagrant/**' | ||
- 'Tools/Vicon/**' | ||
# Remove vehicles autotest we need support of test_build_option.py in the Tools/autotest directory | ||
- 'Tools/autotest/antennatracker.py' | ||
- 'Tools/autotest/arduplane.py' | ||
- 'Tools/autotest/ardusub.py' | ||
- 'Tools/autotest/autotest.py' | ||
- 'Tools/autotest/balancebot.py' | ||
- 'Tools/autotest/common.py' | ||
- 'Tools/autotest/examples.py' | ||
- 'Tools/autotest/quadplane.py' | ||
- 'Tools/autotest/rover.py' | ||
- 'Tools/autotest/sailboat.py' | ||
- 'Tools/autotest/**.txt' | ||
- 'Tools/autotest/logger_metadata/**' | ||
- 'Tools/autotest/param_metadata/**' | ||
# Remove markdown files as irrelevant | ||
- '**.md' | ||
# Remove dotfile at root directory | ||
- './.dir-locals.el' | ||
- './.dockerignore' | ||
- './.editorconfig' | ||
- './.flake8' | ||
- './.gitattributes' | ||
- './.github' | ||
- './.gitignore' | ||
- './.pre-commit-config.yaml' | ||
- './.pydevproject' | ||
- './.valgrind-suppressions' | ||
- './.valgrindrc' | ||
- 'Dockerfile' | ||
- 'Vagrantfile' | ||
- 'Makefile' | ||
# Remove some directories check | ||
- '.vscode/**' | ||
- '.github/ISSUE_TEMPLATE/**' | ||
# Remove change on other workflows | ||
- '.github/workflows/test_environment.yml' | ||
|
||
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.1.3 | ||
strategy: | ||
fail-fast: false # don't cancel if a job from the matrix fails | ||
matrix: | ||
config: [ | ||
default, # Makes it easier to keep merged to have this single config | ||
] | ||
toolchain: [ | ||
chibios, | ||
#chibios-clang, | ||
] | ||
gcc: [10] | ||
exclude: | ||
- gcc: 10 | ||
toolchain: chibios-clang | ||
|
||
steps: | ||
# git checkout the PR | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: 'recursive' | ||
# Put ccache into github cache for faster build | ||
- name: Prepare ccache timestamp | ||
id: ccache_cache_timestamp | ||
run: | | ||
NOW=$(date -u +"%F-%T") | ||
echo "timestamp=${NOW}" >> $GITHUB_OUTPUT | ||
- name: ccache cache files | ||
uses: actions/cache@v3 | ||
with: | ||
path: ~/.ccache | ||
key: ${{github.workflow}}-ccache-${{matrix.config}}-${{ matrix.toolchain }}-${{ matrix.gcc }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} | ||
restore-keys: ${{github.workflow}}-ccache-${{matrix.config}}-${{ matrix.toolchain }}-${{ matrix.gcc }} # restore ccache from either previous build on this branch or on master | ||
- name: setup ccache | ||
run: | | ||
. .github/workflows/ccache.env | ||
- name: Build all supported flight controllers | ||
shell: bash | ||
run: | | ||
boards=( | ||
"CubeBlack" | ||
"CubeOrange" | ||
"CubeOrangePlus" | ||
"Pixhawk1" | ||
"Pixhawk4" | ||
"Pixhawk6C" | ||
"MatekH743" | ||
) | ||
for board in "${boards[@]}"; do | ||
echo "Compiling ArduPlane for $board..." | ||
./waf configure --board "$board" | ||
./waf plane | ||
done | ||
echo "Script completed successfully." | ||
- name: Install zip utility | ||
run: sudo apt-get install zip | ||
- name: Archive build output | ||
run: | | ||
echo build/*/bin/ | xargs -n 1 cp -v ArduPlane/ReleaseNotes.txt | ||
cp -v ArduPlane/ReleaseNotes.txt build/ | ||
zip -r build-output.zip build/*/bin/* | ||
- name: Archive production artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: compiled-output | ||
path: build-output.zip | ||
retention-days: 90 |