Skip to content

AP_Scripting: add bvlos_rc_failsafe #232

AP_Scripting: add bvlos_rc_failsafe

AP_Scripting: add bvlos_rc_failsafe #232

name: Carbonix Build
on:
push:
branches:
- CxPilot
- CxPilot-*
- 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/**'
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/**'
release:
types: [published]
workflow_dispatch:
concurrency:
group: ci-${{github.workflow}}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-20.04
container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29
strategy:
fail-fast: false # don't cancel if a job from the matrix fails
matrix:
toolchain: [
chibios,
#chibios-clang,
]
gcc: [10]
exclude:
- gcc: 10
toolchain: chibios-clang
steps:
# git checkout the PR
- uses: actions/checkout@v3
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-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
- name: setup ccache
run: |
. .github/workflows/ccache.env
- name: build Carbonix Flight Controller
shell: bash
run: |
boards=("CubeOrange" "CarbonixCubeOrange" "sitl")
for board in "${boards[@]}"; do
echo "Compiling AP_Periph for $board..."
./Tools/scripts/build_bootloaders.py "$board"
./waf configure --board "$board" --define=CARBOPILOT=1
./waf plane
done
echo "Script completed successfully."
- name: build Carbonix Periph boards
shell: bash
run: |
boards=("CarbonixF405" "Volanti-M1" "Volanti-M2" "Volanti-M3" "Volanti-M4" "Volanti-M5" "Volanti-LWing" "Volanti-RWing" "Volanti-LTail" "Volanti-RTail" "Ottano-M1" "Ottano-M2" "Ottano-M3" "Ottano-M4" "Ottano-M5" "Ottano-LWing" "Ottano-RWing" "Ottano-LTail" "Ottano-RTail")
for board in "${boards[@]}"; do
echo "Compiling AP_Periph for $board..."
./Tools/scripts/build_bootloaders.py "$board"
./waf configure --board "$board" --define=CARBOPILOT=1
./waf AP_Periph
done
echo "Script completed successfully."
- name: Check build files
id: check_files
uses: andstor/file-existence-action@v2
with:
files: "build/CubeOrange/*, build/CarbonixCubeOrange/*, build/sitl/*, build/CarbonixF405/*, build/Volanti-M1/*, build/Volanti-M2/*, build/Volanti-M3/*, build/Volanti-M4/*, build/Volanti-M5/*, build/Volanti-LWing/*, build/Volanti-RWing/*, build/Volanti-LTail/*, build/Volanti-RTail/*, build/Ottano-M1/*, build/Ottano-M2/*, build/Ottano-M3/*, build/Ottano-M4/*, build/Ottano-M5/*, build/Ottano-LWing/*, build/Ottano-RWing/*, build/Ottano-LTail/*, build/Ottano-RTail/*"
fail: true
- name: Extract firmware version and commit id
id: extract_info
run: |
FIRMWARE_VERSION=$(grep -oP '#define AP_CUSTOM_FIRMWARE_STRING "\K(.*)(?=")' libraries/AP_Common/AP_FWVersionDefine.h)
COMMIT_ID=$(git rev-parse --short HEAD)
echo "firmware_version=$FIRMWARE_VERSION" >> $GITHUB_ENV
echo "commit_id=$COMMIT_ID" >> $GITHUB_ENV
shell: sh -e {0}
- name: Gather build output
run: |
mkdir -p temp
for dir in CubeOrange CarbonixCubeOrange sitl CarbonixF405 Volanti-M1 Volanti-M2 Volanti-M3 Volanti-M4 Volanti-M5 Volanti-LWing Volanti-RWing Volanti-LTail Volanti-RTail Ottano-M1 Ottano-M2 Ottano-M3 Ottano-M4 Ottano-M5 Ottano-LWing Ottano-RWing Ottano-LTail Ottano-RTail; do
mkdir -p temp/$dir/bin
cp -v build/$dir/bin/* temp/$dir/bin/
done
cp -v ArduPlane/ReleaseNotes.txt temp/
shell: sh -e {0}
- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ env.firmware_version }}_${{ env.commit_id }}
path: temp
retention-days: 90
- name: Install AWS CLI
run: |
sudo apt-get update
sudo apt-get install -y curl unzip
curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_S3_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_S3_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Set BRANCH_NAME
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
- name: Upload artifacts to S3
run: |
DATE_HR=$(date +%Y%m%d_%H%M)
if ${{ github.event_name == 'release' }}; then
PATH_TO_S3=s3://carbonix-firmware-release-files/Carbopilot_V2/${DATE_HR}_${{ env.firmware_version }}_${{ env.commit_id }}/
echo "Uploading to: $PATH_TO_S3"
aws s3 cp temp/ $PATH_TO_S3 --recursive
elif ${{ github.event_name == 'push' && startsWith(env.BRANCH_NAME, 'CxPilot') }}; then
PATH_TO_S3=s3://carbonix-firmware-dev-files/Carbopilot_V2/${{ env.BRANCH_NAME }}/${DATE_HR}_${{ env.firmware_version }}_${{ env.commit_id }}/
echo "Uploading to: $PATH_TO_S3"
aws s3 cp temp/ $PATH_TO_S3 --recursive
elif ${{ github.event_name == 'pull_request' }}; then
PATH_TO_S3=s3://carbonix-firmware-dev-files/Carbopilot_V2/PR/${DATE_HR}_${{ env.firmware_version }}_${{ env.commit_id }}_${{ github.event.pull_request.number }}/
echo "Uploading to: $PATH_TO_S3"
aws s3 cp temp/ $PATH_TO_S3 --recursive
fi