diff --git a/.github/workflows/cache_cleanup.yml b/.github/workflows/cache_cleanup.yml deleted file mode 100644 index 6cb2403f2b..0000000000 --- a/.github/workflows/cache_cleanup.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: cleanup caches by a branch -on: - pull_request: - types: - - closed - workflow_dispatch: - -jobs: - cleanup: - runs-on: ubuntu-22.04 - permissions: - # `actions:write` permission is required to delete caches - # See also: https://docs.github.com/en/rest/actions/cache?apiVersion=2022-11-28#delete-a-github-actions-cache-for-a-repository-using-a-cache-id - actions: write - contents: read - steps: - - name: Check out code - uses: actions/checkout@v4 - - - name: Cleanup - run: | - gh extension install actions/gh-actions-cache - - REPO=${{ github.repository }} - BRANCH=refs/pull/${{ github.event.pull_request.number }}/merge - - echo "Fetching list of cache key" - cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 ) - - ## Setting this to not fail the workflow while deleting cache keys. - set +e - echo "Deleting caches..." - for cacheKey in $cacheKeysForPR - do - gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm - done - echo "Done" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/carbonix_build.yml b/.github/workflows/carbonix_build.yml index b4cd5acca3..8a75e21133 100644 --- a/.github/workflows/carbonix_build.yml +++ b/.github/workflows/carbonix_build.yml @@ -135,8 +135,212 @@ concurrency: cancel-in-progress: true jobs: + setup-s3-path: + runs-on: ubuntu-22.04 + if: ${{ !contains(github.event.pull_request.labels.*.name, 'SKIP_BUILD') }} + outputs: + s3_path: ${{ steps.set-s3-path.outputs.s3_path }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Extract firmware version, commit id, and branch name + id: extract_info + run: | + FIRMWARE_VERSION=$(grep -oP 'define AP_CUSTOM_FIRMWARE_STRING "\K(.*)(?=")' libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/version.inc) + if [ "${{ github.event_name }}" == "pull_request" ]; then + COMMIT_ID=$(git rev-parse --short ${{ github.event.pull_request.head.sha }}) + else + COMMIT_ID=$(git rev-parse --short HEAD) + fi + BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/}) + echo "firmware_version=$FIRMWARE_VERSION" >> $GITHUB_ENV + echo "commit_id=$COMMIT_ID" >> $GITHUB_ENV + echo "branch_name=$BRANCH_NAME" >> $GITHUB_ENV + shell: bash + + - name: Set S3 Path + id: set-s3-path + 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 "Release to: $PATH_TO_S3" + elif [ "${{ github.event_name }}" == "push" ] && [[ "${{ 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 "PUSH : $PATH_TO_S3" + 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 "PR : $PATH_TO_S3" + else + PATH_TO_S3="s3://carbonix-firmware-dev-files/Carbopilot_V2/Manual/${DATE_HR}_${{ env.firmware_version }}_${{ env.commit_id }}/" + echo "Manual trigger or other: $PATH_TO_S3" + fi + echo "::set-output name=s3_path::$PATH_TO_S3" + shell: bash + + build-periph: + runs-on: ubuntu-22.04 + if: ${{ !contains(github.event.pull_request.labels.*.name, 'SKIP_BUILD') }} + needs: setup-s3-path + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.1.3 + strategy: + fail-fast: false + matrix: + config: [ + CarbonixF405, + CarbonixF405-no-crystal + ] + + toolchain: [ chibios ] + gcc: [10] + exclude: + - gcc: 10 + toolchain: chibios-clang + + steps: + - uses: actions/checkout@v4 + with: + submodules: 'recursive' + + - 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 }} + + - name: setup ccache + run: | + . .github/workflows/ccache.env + + - name: Install bash tools + run: | + sudo apt-get update + sudo apt-get -y install xxd + + - name: build ${{matrix.config}} + shell: bash + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + if [[ ${{ matrix.toolchain }} == "chibios-clang" ]]; then + export CC=clang + export CXX=clang++ + fi + PATH="/usr/lib/ccache:/opt/gcc-arm-none-eabi-${{matrix.gcc}}/bin:$PATH" + PATH="/github/home/.local/bin:$PATH" + Tools/Carbonix_scripts/carbonix_waf_build.sh ${{ matrix.config }} + ccache -s + ccache -z + + - name: Upload build artifacts + uses: actions/upload-artifact@v3 + with: + name: build-periph-${{ matrix.config }} + path: output/ + + collect-aircraft-config-files: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'SKIP_BUILD') }} + runs-on: ubuntu-22.04 + needs: build-periph + outputs: + aircraft-config-files: ${{ steps.collect.outputs.aircraft-config-files }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install jq + run: sudo apt-get update && sudo apt-get install -y jq + + - name: Collect XML files + id: collect + run: | + xml_files=$(find libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration -name "*.xml" -print0 | xargs -0 echo | tr -d '\n' | jq -R -s -c 'split(" ")') + echo "aircraft-config-files=$xml_files" >> $GITHUB_OUTPUT + + process-ac: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'SKIP_BUILD') }} + runs-on: ubuntu-22.04 + needs: [collect-aircraft-config-files, setup-s3-path] + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.1.3 + strategy: + fail-fast: false + matrix: + xml_file: ${{ fromJson(needs.collect-aircraft-config-files.outputs.aircraft-config-files) }} + toolchain: [ chibios ] + gcc: [10] + exclude: + - gcc: 10 + toolchain: chibios-clang + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: 'recursive' + + - name: Install bash tools + run: | + sudo apt-get update + sudo apt-get -y install xxd + + - name: Download all build artifacts + uses: actions/download-artifact@v3 + with: + path: periph-build/ + + - name: List files + run: | + ls -la periph-build/*/ + + - name: Configure Git Safe Directory + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + + - name: Get Commit ID + id: get_commit_id + run: | + COMMIT_ID=$(git rev-parse --short HEAD) + echo "commit_id=$COMMIT_ID" >> $GITHUB_ENV + shell: sh -e {0} + + - name: Run aircraft_config.py + run: | + python Tools/Carbonix_scripts/aircraft_config.py ${{ matrix.xml_file }} ${{ env.commit_id }} + ls -la final-output/*/ || echo "No files found" + + - name: Install AWS CLI + run: | + apt-get update -y + DEBIAN_FRONTEND=noninteractive apt-get install -y curl unzip + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip -q awscliv2.zip + ./aws/install --update + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + 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: Upload to S3 + run: | + PATH_TO_S3=${{ needs.setup-s3-path.outputs.s3_path }} + echo "Uploading Artifacts to: $PATH_TO_S3" + aws s3 cp final-output/ $PATH_TO_S3 --recursive + build-sitl: runs-on: 'windows-latest' + if: ${{ !contains(github.event.pull_request.labels.*.name, 'SKIP_BUILD') }} + needs: setup-s3-path steps: - uses: actions/checkout@v4 with: @@ -171,12 +375,14 @@ jobs: echo "export CCACHE_MAXSIZE=400M" >> ~/ccache.conf && source ~/ccache.conf && ccache -s + - name: ccache cache files - uses: actions/cache@v4 + uses: actions/cache@v3 with: path: D:/a/ardupilot/ardupilot/ccache key: ${{ steps.ccache_cache_timestamp.outputs.cache-key }}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} restore-keys: ${{ steps.ccache_cache_timestamp.outputs.cache-key }}-ccache- # restore ccache from either previous build on this branch or on base branch + - name: Prepare Python environment env: PATH: /usr/bin:$(cygpath ${SYSTEMROOT})/system32 @@ -216,142 +422,21 @@ jobs: path: artifacts retention-days: 90 - build-apj: - 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: - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{ matrix.gcc }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ 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 - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "chibios-clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/usr/lib/ccache:/opt/gcc-arm-none-eabi-${{matrix.gcc}}/bin:$PATH" - PATH="/github/home/.local/bin:$PATH" - Tools/Carbonix_scripts/carbonix_waf_build.sh - ccache -s - ccache -z - - - name: Check build files - id: check_files - uses: andstor/file-existence-action@v2 - with: - files: "build/CubeOrange/*, build/CubeOrangePlus/*, build/CubeOrange-Volanti/*, build/CubeOrangePlus-Volanti/*, build/CubeOrange-Ottano/*, build/CubeOrangePlus-Ottano/*, build/CarbonixF405/*, build/CarbonixF405-no-crystal/*" - fail: true - - name: Gather build output - run: | - mkdir -p temp/others - for dir in CubeOrange CubeOrangePlus CubeOrange-Volanti CubeOrangePlus-Volanti CubeOrange-Ottano CubeOrangePlus-Ottano CarbonixF405 CarbonixF405-no-crystal; do - mkdir -p temp/others/$dir/bin - cp -vr build/$dir/bin/* temp/others/$dir/bin/ - done - cp -vr output/* temp/ - mv temp/others/CubeOrange-Volanti temp/Volanti - mv temp/others/CubeOrangePlus-Volanti temp/Volanti - mv temp/others/CubeOrange-Ottano temp/Ottano - mv temp/others/CubeOrangePlus-Ottano temp/Ottano - if [ -d "ArduPlane/ReleaseNotes.txt" ]; then - cp -v ArduPlane/ReleaseNotes.txt temp/ - else - echo "ReleaseNotes.txt File does not exist" - fi - if [ -d "libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/payloads" ]; then - cp -vr libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/payloads temp/ - else - echo "payloads Folder does not exist" - fi - shell: sh -e {0} - - name: Archive production artifacts - uses: actions/upload-artifact@v4 - with: - name: apj - path: temp - retention-days: 90 - - upload: - runs-on: ubuntu-22.04 - needs: [build-apj, build-sitl] - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Extract firmware version, commit id, and branch name - id: extract_info - run: | - FIRMWARE_VERSION=$(grep -oP 'define AP_CUSTOM_FIRMWARE_STRING "\K(.*)(?=")' libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/version.inc) - COMMIT_ID=$(git rev-parse --short HEAD) - BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/}) - echo "firmware_version=$FIRMWARE_VERSION" >> $GITHUB_ENV - echo "commit_id=$COMMIT_ID" >> $GITHUB_ENV - echo "branch_name=$BRANCH_NAME" >> $GITHUB_ENV - shell: sh -e {0} - - - name: Download APJ build + - name: Download Artifacts uses: actions/download-artifact@v4 with: - name: apj path: temp - - name: Download SITL build - uses: actions/download-artifact@v4 - with: - name: sitl - path: temp/sitl - - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v4 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: Upload artifacts to S3 + shell: pwsh 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 + $env:PATH_TO_S3 = '${{ needs.setup-s3-path.outputs.s3_path }}' + echo "Uploading to: $env:PATH_TO_S3" + aws s3 cp temp/ $env:PATH_TO_S3 --recursive diff --git a/.github/workflows/cx_build_compare.yml b/.github/workflows/cx_build_compare.yml deleted file mode 100644 index c129f9ec62..0000000000 --- a/.github/workflows/cx_build_compare.yml +++ /dev/null @@ -1,128 +0,0 @@ -name: Compare Build Outputs - -on: - pull_request: - types: [labeled] - -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build-and-compare: - if: github.event.label.name == 'CX_NO_CODE_CHANGE' - 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: - toolchain: [ - chibios, - ] - gcc: [10] - exclude: - - gcc: 10 - toolchain: chibios-clang - board: ["CubeOrange-Volanti", "CubeOrangePlus-Volanti", "CubeOrange-Ottano", "CubeOrangePlus-Ottano", "CarbonixF405", "CarbonixF405-no-crystal"] - steps: - # git checkout the PR - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - 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@v4 - 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: Check if Hwdef directory has been modified - run: | - git fetch origin ${{ github.event.pull_request.base.ref }} - CHANGED=$(git diff --quiet HEAD origin/${{ github.event.pull_request.base.ref }} -- libraries/AP_HAL_ChibiOS/hwdef || echo "changed") - if [ "$CHANGED" = "changed" ]; then - echo "Directory has been modified" - exit 1 - fi - - - name: Build Head and ${{ github.event.pull_request.base.ref }} ${{matrix.board}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - - # export some environment variables designed to get - # repeatable builds from the same source: - export CHIBIOS_GIT_VERSION="12345678" - export GIT_VERSION="abcdef" - export GIT_VERSION_INT="15" - ./waf configure --board ${{matrix.board}} - - ./Tools/Carbonix_scripts/build_no_clean.sh ${{ matrix.board }} - - NO_VERSIONS_DIR="$GITHUB_WORKSPACE/${{matrix.board}}/pr_bin_no_versions" - mkdir -p "$NO_VERSIONS_DIR" - cp -r build/${{matrix.board}}/bin/* "$NO_VERSIONS_DIR" - - echo [`date`] Built Base with no versions - - git checkout ${{ github.event.pull_request.base.ref }} - - # export some environment variables designed to get - # repeatable builds from the same source: - - export CHIBIOS_GIT_VERSION="12345678" - export GIT_VERSION="abcdef" - export GIT_VERSION_INT="15" - ./Tools/Carbonix_scripts/build_no_clean.sh ${{ matrix.board }} - - NO_VERSIONS_DIR="$GITHUB_WORKSPACE/${{matrix.board}}/base_branch_bin_no_versions" - mkdir -p "$NO_VERSIONS_DIR" - cp -r build/${{matrix.board}}/bin/* "$NO_VERSIONS_DIR" - - echo [`date`] Built ${{ github.event.pull_request.base.ref }} with no versions - - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.board }} - path: ${{ github.workspace }}/${{ matrix.board }} - if-no-files-found: warn - retention-days: 7 - - - name: Compare build outputs - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - differences_found=0 - - for base_file in $GITHUB_WORKSPACE/${{ matrix.board }}/base_branch_bin_no_versions/*.bin - do - base_filename=$(basename "$base_file") - diff_output=$(diff $base_file $GITHUB_WORKSPACE/${{ matrix.board }}/pr_bin_no_versions/$base_filename) || true - if [ "$diff_output" != "" ]; then - echo Failed -- Comparing $base_file and $GITHUB_WORKSPACE/${{ matrix.board }}/pr_bin_no_versions/$base_filename resulted in $diff_output - differences_found=1 - else - echo Passed -- Comparing $base_file and $GITHUB_WORKSPACE/${{ matrix.board }}/pr_bin_no_versions/$base_filename - fi - done - if [ $differences_found -eq 1 ]; then - exit 1 - fi - \ No newline at end of file diff --git a/.github/workflows/esp32_build.yml b/.github/workflows/esp32_build.yml deleted file mode 100644 index 70329303ef..0000000000 --- a/.github/workflows/esp32_build.yml +++ /dev/null @@ -1,208 +0,0 @@ -name: ESP32 Build - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove non copter and plane vehicles - - 'AntennaTracker/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non esp32 HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_SITL/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/mavproxy_modules/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove autotest - - 'Tools/autotest/**' - # 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 - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - esp32buzz, - esp32s3empty, - ] - gcc: [10] - - steps: - - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Register gcc problem matcher - run: echo "::add-matcher::.github/problem-matchers/gcc.json" - - - name: Register python problem matcher - run: echo "::add-matcher::.github/problem-matchers/python.json" - - - name: Register autotest warn matcher - run: echo "::add-matcher::.github/problem-matchers/autotestwarn.json" - - - name: Register autotest fail matcher - run: echo "::add-matcher::.github/problem-matchers/autotestfail.json" - - - name: Install Prerequisites - shell: bash - run: | - sudo apt-get install git wget libncurses-dev flex bison gperf python3 python3-pip python3-venv python3-setuptools python3-serial python3-gevent python3-cryptography python3-future python3-pyparsing python3-pyelftools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 - sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 - update-alternatives --query python - python --version - pip3 install gevent - - # we actualy want 3.11 .. but the above only gave us 3.10, not ok with esp32 builds. - sudo add-apt-repository ppa:deadsnakes/ppa - sudo apt-get update - sudo apt-get install python3.11 python3.11-venv python3.11-distutils -y - sudo apt-get install python3 python3-pip python3-venv python3-setuptools python3-serial python3-cryptography python3-future python3-pyparsing python3-pyelftools - update-alternatives --query python - pip3 install gevent - python --version - python3.11 --version - which python3.11 - sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 11 - update-alternatives --query python - - rm -rf /usr/local/bin/cmake - sudo apt-get remove --purge --auto-remove cmake - sudo apt-get update && \ - sudo apt-get install -y software-properties-common lsb-release && \ - sudo apt-get clean all - wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null - sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" - sudo apt-get update - sudo apt-get install cmake - - - git submodule update --init --recursive --depth=1 - ./Tools/scripts/esp32_get_idf.sh - - sudo ln -s /usr/bin/ninja /usr/bin/ninja-build - - cd modules/esp_idf - echo "Installing ESP-IDF tools...." - ./install.sh esp32,esp32s3 - cd ../.. - - - - name: build ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - source ~/.bash_profile - PATH="/github/home/.local/bin:$PATH" - echo $PATH - echo "### Configure ${{matrix.config}} :rocket:" >> $GITHUB_STEP_SUMMARY - cd modules/esp_idf - ./install.sh - source ./export.sh - cd ../.. - python -m pip install --progress-bar off future lxml pymavlink MAVProxy pexpect flake8 geocoder empy==3.3.4 dronecan - which cmake - ./waf configure --board ${{matrix.config}} - echo './waf configure --board ${{matrix.config}}' >> $GITHUB_STEP_SUMMARY - echo "### Build Plane ${{matrix.config}} :rocket:" >> $GITHUB_STEP_SUMMARY - echo './waf plane' >> $GITHUB_STEP_SUMMARY - ./waf plane | tee >( grep -vE 'Compiling|Generat|includes.list|Parsing|Validation|Building|Linking|Detecting|linker|\*\*\*\*\*\*\*|Partition|SubType|Checking|esp-idf' --color=never --line-buffered > summary.log) - cat summary.log >> $GITHUB_STEP_SUMMARY - - cp build/${{matrix.config}}/esp-idf_build/ardupilot.bin ./ArduPlane.${{matrix.config}}.bin - cp build/${{matrix.config}}/esp-idf_build/ardupilot.elf ./ArduPlane.${{matrix.config}}.elf - echo "### Build Copter ${{matrix.config}} :rocket:" >> $GITHUB_STEP_SUMMARY - echo './waf copter' >> $GITHUB_STEP_SUMMARY - ./waf copter | tee >( grep -vE 'Compiling|Generat|includes.list|Parsing|Validation|Building|Linking|Detecting|linker|\*\*\*\*\*\*\*|Partition|SubType|Checking|esp-idf' --color=never --line-buffered > summary2.log) - - cat summary2.log >> $GITHUB_STEP_SUMMARY - - cp build/${{matrix.config}}/esp-idf_build/ardupilot.bin ./ArduCopter.${{matrix.config}}.bin - cp build/${{matrix.config}}/esp-idf_build/ardupilot.elf ./ArduCopter.${{matrix.config}}.elf - - cp build/${{matrix.config}}/esp-idf_build/bootloader/bootloader.bin ./bootloader.${{matrix.config}}.bin - cp build/${{matrix.config}}/esp-idf_build/partition_table/partition-table.bin ./partition-table.${{matrix.config}}.bin - - echo "### Assets avail in artifact:" >> $GITHUB_STEP_SUMMARY - ls bootloader* partition* Ardu*.elf Ardu*.bin >> $GITHUB_STEP_SUMMARY - - - name: Archive artifacts - uses: actions/upload-artifact@v4 - with: - name: esp32-binaries -${{matrix.config}} - path: | - /home/runner/work/ardupilot/ardupilot/ArduPlane.${{matrix.config}}.bin - /home/runner/work/ardupilot/ardupilot/ArduPlane.${{matrix.config}}.elf - /home/runner/work/ardupilot/ardupilot/ArduCopter.${{matrix.config}}.bin - /home/runner/work/ardupilot/ardupilot/ArduCopter.${{matrix.config}}.elf - /home/runner/work/ardupilot/ardupilot/bootloader.${{matrix.config}}.bin - /home/runner/work/ardupilot/ardupilot/partition-table.${{matrix.config}}.bin - - - retention-days: 14 - diff --git a/.github/workflows/param_check.yml b/.github/workflows/param_check.yml deleted file mode 100644 index acb973da8a..0000000000 --- a/.github/workflows/param_check.yml +++ /dev/null @@ -1,233 +0,0 @@ -name: Carbonix Parameter Validation -on: - push: - branches: - - CxPilot - - master - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non unrelated tools - - 'Tools/AP_Bootloader/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/ros2/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove vehicles autotest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.py' - - 'Tools/autotest/location.txt' - - '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' - - '.github/workflows/cache_cleanup.yml' - - '.github/workflows/cygwin_build.yml' - - '.github/workflows/test_ccache.yml' - - '.github/workflows/test_linux_sbc.yml' - - '.github/workflows/test_scripts.yml' - - '.github/workflows/test_sitl_periph.yml' - - '.github/workflows/test_sitl_sub.yml' - - '.github/workflows/ccache.env' - - '.github/workflows/esp32_build.yml' - - '.github/workflows/test_chibios.yml' - - '.github/workflows/test_replay.yml' - - '.github/workflows/test_sitl_blimp.yml' - - '.github/workflows/test_sitl_plane.yml' - - '.github/workflows/test_sitl_tracker.yml' - - '.github/workflows/colcon.yml' - - '.github/workflows/test_dds.yml' - - '.github/workflows/test_scripting.yml' - - '.github/workflows/test_sitl_copter.yml' - - '.github/workflows/test_sitl_rover.yml' - - '.github/workflows/test_unit_tests.yml' - - pull_request: - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non unrelated tools - - 'Tools/AP_Bootloader/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/ros2/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove vehicles autotest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.py' - - 'Tools/autotest/location.txt' - - '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' - - '.github/workflows/cache_cleanup.yml' - - '.github/workflows/cygwin_build.yml' - - '.github/workflows/test_ccache.yml' - - '.github/workflows/test_linux_sbc.yml' - - '.github/workflows/test_scripts.yml' - - '.github/workflows/test_sitl_periph.yml' - - '.github/workflows/test_sitl_sub.yml' - - '.github/workflows/ccache.env' - - '.github/workflows/esp32_build.yml' - - '.github/workflows/test_chibios.yml' - - '.github/workflows/test_replay.yml' - - '.github/workflows/test_sitl_blimp.yml' - - '.github/workflows/test_sitl_plane.yml' - - '.github/workflows/test_sitl_tracker.yml' - - '.github/workflows/colcon.yml' - - '.github/workflows/test_dds.yml' - - '.github/workflows/test_scripting.yml' - - '.github/workflows/test_sitl_copter.yml' - - '.github/workflows/test_sitl_rover.yml' - - '.github/workflows/test_unit_tests.yml' - - workflow_dispatch: - -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - test-parameters: - runs-on: ubuntu-22.04 - container: ardupilot/ardupilot-dev-base:v0.1.3 - - steps: - - name: Checkout Code - uses: actions/checkout@v4 - - - name: Param Check Unittests - run: > - python Tools/Carbonix_scripts/param_check_unittests.py - - - name: Check Periph Parameters - run: > - python Tools/Carbonix_scripts/param_check.py - --vehicle=AP_Periph - libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn_params/**/*.par*m - libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/payloads/**/cpn*.par*m - libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/payloads/**/CPN*.par*m - - - name: Check Plane Parameters - # Run even if the previous step fails - if: success() || failure() - run: > - python Tools/Carbonix_scripts/param_check.py - --vehicle=Plane - libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/defaults.parm - libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/payloads/**/Cube*.par*m - libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/payloads/**/cube*.par*m - libraries/AP_HAL_ChibiOS/hwdef/CubeOrange-Volanti/defaults.parm - libraries/AP_HAL_ChibiOS/hwdef/CubeOrangePlus-Volanti/defaults.parm - libraries/AP_HAL_ChibiOS/hwdef/CubeOrange-Ottano/defaults.parm - libraries/AP_HAL_ChibiOS/hwdef/CubeOrangePlus-Ottano/defaults.parm diff --git a/.github/workflows/test_ccache.yml b/.github/workflows/test_ccache.yml deleted file mode 100644 index 3c8dbdd629..0000000000 --- a/.github/workflows/test_ccache.yml +++ /dev/null @@ -1,152 +0,0 @@ -name: test ccache - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - 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/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 autotests stuff - - 'Tools/autotest/**' - # 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 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/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 autotests stuff - - 'Tools/autotest/**' - # 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: - toolchain: [ - chibios, - ] - gcc: [10] - steps: - # git checkout the PR - - uses: actions/checkout@v4 - 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,MatekF405-bdshot --min-cache-pct=75 - Tools/scripts/build_tests/test_ccache.py --boards Durandal,Pixhawk6X --min-cache-pct=70 - diff --git a/.github/workflows/test_chibios.yml b/.github/workflows/test_chibios.yml deleted file mode 100644 index 8c5cebf182..0000000000 --- a/.github/workflows/test_chibios.yml +++ /dev/null @@ -1,210 +0,0 @@ -name: test chibios - -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/**' - # 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: [ - stm32f7, - stm32h7, - fmuv2-plane, - periph-build, - iofirmware, - CubeOrange-bootloader, - fmuv3-bootloader, - revo-bootloader, - stm32h7-debug, - fmuv3, - revo-mini, - MatekF405-Wing, - CubeOrange-ODID, - CubeRedPrimary-bootloader, - configure-all, - build-options-defaults-test, - signing, - CubeOrange-PPP, - CubeOrange-SOHW, - Pixhawk6X-PPPGW, - ] - 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@v4 - 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: test ${{matrix.config}} ${{ matrix.toolchain }} gcc-${{matrix.gcc}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "chibios-clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/usr/lib/ccache:/opt/gcc-arm-none-eabi-${{matrix.gcc}}/bin:$PATH" - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - ccache -s - ccache -z diff --git a/.github/workflows/test_linux_sbc.yml b/.github/workflows/test_linux_sbc.yml deleted file mode 100644 index c27d7b4a3a..0000000000 --- a/.github/workflows/test_linux_sbc.yml +++ /dev/null @@ -1,143 +0,0 @@ -name: test Linux SBC - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove non LINUX HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - - 'libraries/AP_HAL_SITL/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/mavproxy_modules/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard file from Tools/scripts as not used - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove autotests stuff - - 'Tools/autotest/**' - # 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: [ - linux, - navigator, - navio, - navio2, - bbbmini, - bhat, - bebop, - erlebrain2, - pxfmini, - pxf, - canzero, - ] - toolchain: [ - armhf, - ] - include: - - config: navigator - toolchain: armhf-musl - - config: linux - toolchain: base # GCC - exclude: - - config: navigator - toolchain: armhf - - config: linux - toolchain: armhf - - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{matrix.config}}-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{matrix.config}}-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} ${{ matrix.toolchain }} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - ccache -s - ccache -z diff --git a/.github/workflows/test_replay.yml b/.github/workflows/test_replay.yml deleted file mode 100644 index 25946f1411..0000000000 --- a/.github/workflows/test_replay.yml +++ /dev/null @@ -1,205 +0,0 @@ -name: test replay - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/mavproxy_modules/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove autotests stuff - - 'Tools/autotest/**' - # 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 other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/mavproxy_modules/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove autotests stuff - - 'Tools/autotest/**' - # 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: - toolchain: [ - base, # GCC - clang, - ] - config: [ - replay - ] - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} ${{ matrix.toolchain }} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{ matrix.toolchain }}-${{matrix.config}} - path: /tmp/buildlogs - retention-days: 14 diff --git a/.github/workflows/test_scripting.yml b/.github/workflows/test_scripting.yml deleted file mode 100644 index c5bd48b97b..0000000000 --- a/.github/workflows/test_scripting.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: test scripting - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths: # only run for scripting changes - - 'libraries/AP_Scripting/tests/docs_check.py' - - 'libraries/AP_Scripting/generator/**' - - '**.lua' - - pull_request: - paths: # only run for scripting changes - - 'libraries/AP_Scripting/tests/docs_check.py' - - 'libraries/AP_Scripting/generator/**' - - '**.lua' - - workflow_dispatch: - -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - test-scripting: - runs-on: ubuntu-22.04 - container: ardupilot/ardupilot-dev-base:v0.1.3 - steps: - # git checkout the PR - - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Lua Linter - shell: bash - run: | - sudo apt-get update - sudo apt-get -y install lua-check - ./Tools/scripts/run_luacheck.sh - - - name: copy docs - run: | - PATH="/github/home/.local/bin:$PATH" - mv "libraries/AP_Scripting/docs/docs.lua" "libraries/AP_Scripting/docs/current_docs.lua" - - - name: build sitl # we don't really need to build the full code, just trigger docs re-gen with --scripting-docs, timeout after 10 seconds - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - timeout 10 ./waf antennatracker --scripting-docs || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi - - - name: run compare - run: | - PATH="/github/home/.local/bin:$PATH" - python ./libraries/AP_Scripting/tests/docs_check.py "./libraries/AP_Scripting/docs/docs.lua" "./libraries/AP_Scripting/docs/current_docs.lua" diff --git a/.github/workflows/test_scripts.yml b/.github/workflows/test_scripts.yml deleted file mode 100644 index 94559a422a..0000000000 --- a/.github/workflows/test_scripts.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: test scripts - -on: [push, pull_request, workflow_dispatch] - -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-22.04 - container: ardupilot/ardupilot-dev-base:v0.1.3 - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - check_autotest_options, - param_parse, - python-cleanliness, - astyle-cleanliness, - validate_board_list, - ] - steps: - # git checkout the PR - - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - Tools/scripts/build_ci.sh diff --git a/.github/workflows/test_sitl_blimp.yml b/.github/workflows/test_sitl_blimp.yml deleted file mode 100644 index 9ffac8b482..0000000000 --- a/.github/workflows/test_sitl_blimp.yml +++ /dev/null @@ -1,197 +0,0 @@ -name: test blimp - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'ArduCopter/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.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/**' - - 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: - toolchain: [ - base, # GCC - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: build blimp ${{ matrix.toolchain }} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - ./waf build --target bin/blimp - ccache -s - ccache -z - - autotest: - needs: build # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-base:v0.1.3 - options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-blimp, - ] - - 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/restore@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{matrix.config}} - path: | - /tmp/buildlogs - /__w/ardupilot/ardupilot/logs - /__w/ardupilot/ardupilot/ap-*.core - /__w/ardupilot/ardupilot/core.* - /__w/ardupilot/ardupilot/dumpstack.sh_* - /__w/ardupilot/ardupilot/dumpcore.sh_* - retention-days: 14 - - - name: Archive .bin artifacts - uses: actions/upload-artifact@v4 - with: - name: BIN-${{matrix.config}} - path: /__w/ardupilot/ardupilot/logs - retention-days: 7 - diff --git a/.github/workflows/test_sitl_copter.yml b/.github/workflows/test_sitl_copter.yml deleted file mode 100644 index 9955d74257..0000000000 --- a/.github/workflows/test_sitl_copter.yml +++ /dev/null @@ -1,297 +0,0 @@ -name: test copter - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest - - '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' - - 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: - toolchain: [ - base, # GCC - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: build copter ${{ matrix.toolchain }} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - ./waf build --target bin/arducopter - ccache -s - ccache -z - - autotest: - needs: build # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-base:v0.1.3 - options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-copter-tests1a, - sitltest-copter-tests1b, - sitltest-copter-tests1c, - sitltest-copter-tests1d, - sitltest-copter-tests1e, - sitltest-copter-tests2a, - sitltest-copter-tests2b, - ] - - 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/restore@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{matrix.config}} - path: | - /tmp/buildlogs - /__w/ardupilot/ardupilot/logs - /__w/ardupilot/ardupilot/ap-*.core - /__w/ardupilot/ardupilot/core.* - /__w/ardupilot/ardupilot/dumpstack.sh_* - /__w/ardupilot/ardupilot/dumpcore.sh_* - retention-days: 14 - - - name: Archive .bin artifacts - uses: actions/upload-artifact@v4 - with: - name: BIN-${{matrix.config}} - path: /__w/ardupilot/ardupilot/logs - retention-days: 7 - - build-gcc-heli: - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-base:v0.1.3 - options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: build heli - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - ./waf build --target bin/arducopter-heli - ccache -s - ccache -z - - autotest-heli: - needs: build-gcc-heli # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: ardupilot/ardupilot-dev-base:v0.1.3 - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-heli, - ] - - 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/restore@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{matrix.config}} - path: | - /tmp/buildlogs - /__w/ardupilot/ardupilot/logs - /__w/ardupilot/ardupilot/ap-*.core - /__w/ardupilot/ardupilot/core.* - /__w/ardupilot/ardupilot/dumpstack.sh_* - /__w/ardupilot/ardupilot/dumpcore.sh_* - retention-days: 14 - - - name: Archive .bin artifacts - uses: actions/upload-artifact@v4 - with: - name: BIN-${{matrix.config}} - path: /__w/ardupilot/ardupilot/logs - retention-days: 7 diff --git a/.github/workflows/test_sitl_periph.yml b/.github/workflows/test_sitl_periph.yml deleted file mode 100644 index 8bb9d55b9b..0000000000 --- a/.github/workflows/test_sitl_periph.yml +++ /dev/null @@ -1,246 +0,0 @@ -name: test ap_periph - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles than copter - - 'AntennaTracker/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest keep only coptertest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.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 other vehicles than copter - - 'AntennaTracker/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest keep only coptertest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.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' - - workflow_dispatch: - -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build-gcc-ap_periph: - runs-on: ubuntu-22.04 - container: ardupilot/ardupilot-dev-periph:v0.1.3 - 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@v4 - 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: run dronecan dsdlc generator test - run: | - PATH="/github/home/.local/bin:$PATH" - python modules/DroneCAN/dronecan_dsdlc/dronecan_dsdlc.py -O dsdlc_generated modules/DroneCAN/DSDL/uavcan modules/DroneCAN/DSDL/dronecan modules/DroneCAN/DSDL/com --run-test - - - name: build sitl_periph_universal - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl_periph_universal - ./waf build --target bin/AP_Periph - ccache -s - ccache -z - - autotest-can: - needs: build-gcc-ap_periph # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-periph:v0.1.3 - options: --privileged - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-can, - ] - - 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@v4 - 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: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - kernel_ver=`uname -r` - if [ "$kernel_ver" = "5.4.0-1032-azure" ] || [ "$kernel_ver" = "5.11.4-051104-generic" ]; then echo "Unsupported Kernel $kernel_ver" && exit 0; fi; - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh diff --git a/.github/workflows/test_sitl_plane.yml b/.github/workflows/test_sitl_plane.yml deleted file mode 100644 index ad6f8aaca3..0000000000 --- a/.github/workflows/test_sitl_plane.yml +++ /dev/null @@ -1,274 +0,0 @@ -name: test plane - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.py' - - 'Tools/autotest/location.txt' - - '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 other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.py' - - 'Tools/autotest/location.txt' - - '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' - - 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: - toolchain: [ - base, # GCC - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: build plane ${{ matrix.toolchain }} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - ./waf build --target bin/arduplane - ccache -s - ccache -z - - autotest: - needs: build # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-base:v0.1.3 - options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-plane, - sitltest-quadplane, - ] - - 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/restore@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{matrix.config}} - path: | - /tmp/buildlogs - /__w/ardupilot/ardupilot/logs - /__w/ardupilot/ardupilot/ap-*.core - /__w/ardupilot/ardupilot/core.* - /__w/ardupilot/ardupilot/dumpstack.sh_* - /__w/ardupilot/ardupilot/dumpcore.sh_* - retention-days: 14 - - - name: Archive .bin artifacts - uses: actions/upload-artifact@v4 - with: - name: BIN-${{matrix.config}} - path: /__w/ardupilot/ardupilot/logs - retention-days: 7 - diff --git a/.github/workflows/test_sitl_rover.yml b/.github/workflows/test_sitl_rover.yml deleted file mode 100644 index f5c9227c6e..0000000000 --- a/.github/workflows/test_sitl_rover.yml +++ /dev/null @@ -1,200 +0,0 @@ -name: test rover - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'Blimp/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/helicopter.py' - - 'Tools/autotest/location.txt' - - 'Tools/autotest/quadplane.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' - - 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: - toolchain: [ - base, # GCC - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: build rover ${{ matrix.toolchain }} - shell: bash - run: | - sudo apt-get update || true - sudo apt-get -y install ppp || true - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - ./waf build --target bin/ardurover - ccache -s - ccache -z - - autotest: - needs: build # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-base:v0.1.3 - options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-rover, - sitltest-sailboat, - sitltest-balancebot - ] - - 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/restore@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{matrix.config}} - path: | - /tmp/buildlogs - /__w/ardupilot/ardupilot/logs - /__w/ardupilot/ardupilot/ap-*.core - /__w/ardupilot/ardupilot/core.* - /__w/ardupilot/ardupilot/dumpstack.sh_* - /__w/ardupilot/ardupilot/dumpcore.sh_* - retention-days: 14 - - - name: Archive .bin artifacts - uses: actions/upload-artifact@v4 - with: - name: BIN-${{matrix.config}} - path: /__w/ardupilot/ardupilot/logs - retention-days: 7 - diff --git a/.github/workflows/test_sitl_sub.yml b/.github/workflows/test_sitl_sub.yml deleted file mode 100644 index d1f0efc3e0..0000000000 --- a/.github/workflows/test_sitl_sub.yml +++ /dev/null @@ -1,198 +0,0 @@ -name: test sub - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles - - 'AntennaTracker/**' - - 'ArduCopter/**' - - 'ArduPlane/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest - - 'Tools/autotest/antennatracker.py' - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.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' - - 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: - toolchain: [ - base, # GCC - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: build sub ${{ matrix.toolchain }} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - ./waf build --target bin/ardusub - ccache -s - ccache -z - - autotest: - needs: build # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-base:v0.1.3 - options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-sub - ] - - 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/restore@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{matrix.config}} - path: | - /tmp/buildlogs - /__w/ardupilot/ardupilot/logs - /__w/ardupilot/ardupilot/ap-*.core - /__w/ardupilot/ardupilot/core.* - /__w/ardupilot/ardupilot/dumpstack.sh_* - /__w/ardupilot/ardupilot/dumpcore.sh_* - retention-days: 14 - - - name: Archive .bin artifacts - uses: actions/upload-artifact@v4 - with: - name: BIN-${{matrix.config}} - path: /__w/ardupilot/ardupilot/logs - retention-days: 7 - diff --git a/.github/workflows/test_sitl_tracker.yml b/.github/workflows/test_sitl_tracker.yml deleted file mode 100644 index 477bbc5236..0000000000 --- a/.github/workflows/test_sitl_tracker.yml +++ /dev/null @@ -1,198 +0,0 @@ -name: test tracker - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # remove other vehicles - - 'ArduCopter/**' - - 'ArduPlane/**' - - 'ArduSub/**' - - 'Blimp/**' - - 'Rover/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # remove non SITL directories - - 'Tools/AP_Bootloader/**' - - 'Tools/AP_Periph/**' - - 'Tools/bootloaders/**' - - 'Tools/CHDK-Script/**' - - '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/IO_Firmware/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/Replay/**' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # Discard python file from Tools/scripts as not used - - 'Tools/scripts/**.py' - - 'Tools/scripts/build_sizes/**' - - 'Tools/scripts/build_tests/**' - - 'Tools/scripts/CAN/**' - - 'Tools/scripts/signing/**' - # Remove other vehicles autotest - - 'Tools/autotest/arducopter.py' - - 'Tools/autotest/arduplane.py' - - 'Tools/autotest/ardusub.py' - - 'Tools/autotest/balancebot.py' - - 'Tools/autotest/helicopter.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' - - 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: - toolchain: [ - base, # GCC - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: build tracker ${{ matrix.toolchain }} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - ./waf configure --board sitl - ./waf build --target bin/antennatracker - ccache -s - ccache -z - - autotest: - needs: build # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build - runs-on: ubuntu-22.04 - container: - image: ardupilot/ardupilot-dev-base:v0.1.3 - options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitltest-tracker - ] - - 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/restore@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{matrix.config}} - path: | - /tmp/buildlogs - /__w/ardupilot/ardupilot/logs - /__w/ardupilot/ardupilot/ap-*.core - /__w/ardupilot/ardupilot/core.* - /__w/ardupilot/ardupilot/dumpstack.sh_* - /__w/ardupilot/ardupilot/dumpcore.sh_* - retention-days: 14 - - - name: Archive .bin artifacts - uses: actions/upload-artifact@v4 - with: - name: BIN-${{matrix.config}} - path: /__w/ardupilot/ardupilot/logs - retention-days: 7 - diff --git a/.github/workflows/test_unit_tests.yml b/.github/workflows/test_unit_tests.yml deleted file mode 100644 index 989fb6904e..0000000000 --- a/.github/workflows/test_unit_tests.yml +++ /dev/null @@ -1,161 +0,0 @@ -name: test unit tests and sitl building - -on: - push: - branches: - - CxPilot - - CxPilot-* - - master - paths-ignore: - # Remove markdown files as irrelevant - - '**.md' - # Remove dotfile at root directory - - './.dir-locals.el' - - './.dockerignore' - - './.editorconfig' - - './.gitattributes' - - './.github' - - './.gitignore' - - './.valgrind-suppressions' - - './.valgrindrc' - - 'Dockerfile' - - 'Vagrantfile' - - 'Makefile' - # Remove some directories check - - '.vscode/**' - - '.github/ISSUE_TEMPLATE/**' - # Remove generic tools - - 'Tools/CHDK-Script/**' - - 'Tools/CodeStyle/**' - - 'Tools/completion/**' - - 'Tools/CPUInfo/**' - - 'Tools/debug/**' - - 'Tools/environment_install/**' - - 'Tools/FilterTestTool/**' - - 'Tools/geotag/**' - - 'Tools/GIT_Test/**' - - 'Tools/gittools/**' - - 'Tools/Hello/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/mavproxy_modules/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/simulink/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/vagrant/**' - - 'Tools/Vicon/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # Remove change on other workflows - - '.github/workflows/test_environment.yml' - pull_request: - paths-ignore: - # Remove markdown files as irrelevant - - '**.md' - # Remove dotfile at root directory - - './.dir-locals.el' - - './.dockerignore' - - './.editorconfig' - - './.gitattributes' - - './.github' - - './.gitignore' - - './.valgrind-suppressions' - - './.valgrindrc' - - 'Dockerfile' - - 'Vagrantfile' - - 'Makefile' - # Remove some directories check - - '.vscode/**' - - '.github/ISSUE_TEMPLATE/**' - # Remove generic tools - - 'Tools/CHDK-Script/**' - - 'Tools/CPUInfo/**' - - 'Tools/CodeStyle/**' - - 'Tools/FilterTestTool/**' - - 'Tools/GIT_Test/**' - - 'Tools/Hello/**' - - 'Tools/Linux_HAL_Essentials/**' - - 'Tools/LogAnalyzer/**' - - 'Tools/Pozyx/**' - - 'Tools/PrintVersion.py' - - 'Tools/completion/**' - - 'Tools/debug/**' - - 'Tools/environment_install/**' - - 'Tools/geotag/**' - - 'Tools/gittools/**' - - 'Tools/mavproxy_modules/**' - - 'Tools/simulink/**' - - 'Tools/vagrant/**' - - 'Tools/UDP_Proxy/**' - - 'Tools/Vicon/**' - # remove non SITL HAL - - 'libraries/AP_HAL_ChibiOS/**' - - 'libraries/AP_HAL_ESP32/**' - # 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: - image: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.1.3 - options: --user 1001 - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - toolchain: [ - base, # GCC - clang, - ] - config: [ - unit-tests, - sitl - # examples, - ] - 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@v4 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test ${{matrix.config}} ${{ matrix.toolchain }} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: 'script -q -e -c "bash {0}"' - run: | - git config --global --add safe.directory ${GITHUB_WORKSPACE} - if [[ ${{ matrix.toolchain }} == "clang" ]]; then - export CC=clang - export CXX=clang++ - fi - PATH="/github/home/.local/bin:$PATH" - Tools/scripts/build_ci.sh - - - name: Archive buildlog artifacts - uses: actions/upload-artifact@v4 - if: failure() - with: - name: fail-${{ matrix.toolchain }}-${{matrix.config}} - path: /tmp/buildlogs - retention-days: 14 diff --git a/Tools/Carbonix_scripts/aircraft_config.py b/Tools/Carbonix_scripts/aircraft_config.py new file mode 100644 index 0000000000..12e6f34545 --- /dev/null +++ b/Tools/Carbonix_scripts/aircraft_config.py @@ -0,0 +1,188 @@ +import sys +import os +import shutil +import argparse +import glob +import xml.etree.ElementTree as ET + +# Replace all cx_pilot_commit_id with the commit_id in the xml file +def replace_commit_id(file_path, new_commit_id): + try: + with open(file_path, 'r') as file: + content = file.read() + + content = content.replace('cx_pilot_commit_id', new_commit_id) + + with open(file_path, 'w') as file: + file.write(content) + print(f"Replaced 'cx_pilot_commit_id' with '{new_commit_id}' in {file_path}") + except Exception as e: + print(f"Error replacing commit ID: {e}") + sys.exit(1) + +# Get the firmware name from the xml file +def get_firmware_name(xml_file): + try: + tree = ET.parse(xml_file) + root = tree.getroot() + flight_controller = root.find('flight_controler') + if flight_controller is None: + print("Error: 'flight_controler' element not found in the XML file") + return None + firmware_name = flight_controller.find('firmware_name') + if firmware_name is None: + print("Error: 'firmware_name' tag not found in the 'flight_controler' element") + return None + return firmware_name.text + except ET.ParseError as e: + print(f"Error parsing XML file: {e}") + sys.exit(1) + except Exception as e: + print(f"Error reading XML file: {e}") + sys.exit(1) + +def copy_file(xml_file, firmware_name): + try: + destination_path = f'libraries/AP_HAL_ChibiOS/hwdef/{firmware_name}/AircraftConfiguration.xml' + os.makedirs(os.path.dirname(destination_path), exist_ok=True) + shutil.copy(xml_file, destination_path) + print(f"Copied '{xml_file}' to {destination_path}") + except Exception as e: + print(f"Error copying file: {e}") + sys.exit(1) + +# Extract aircraft model and model_version +def extract_aircraft_info(xml_file): + try: + tree = ET.parse(xml_file) + root = tree.getroot() + + aircraft = root.find('aircraft') + if aircraft is not None: + model = aircraft.find('model') + model_version = aircraft.find('model_version') + if model is not None and model_version is not None: + return model.text, model_version.text + print("Error: 'model' or 'model_version' tag not found in the 'aircraft' element") + return None, None + except ET.ParseError as e: + print(f"Error parsing XML file: {e}") + return None, None + except Exception as e: + print(f"Error reading XML file: {e}") + return None, None + +def get_periph_firmware_name_dict(xml_file): + try: + tree = ET.parse(xml_file) + root = tree.getroot() + + cpn_list = root.find('cpn_list') + if cpn_list is None: + print("Error: 'cpn_list' element not found in the 'data' element") + return {} + + firmware_dict = {} + for cpn in cpn_list.findall('cpn'): + firmware_name = cpn.find('firmware_name') + if firmware_name is not None: + firmware_dict[firmware_name.text] = { + 'id': cpn.get('id'), + 'bus': cpn.find('bus').text if cpn.find('bus') is not None else None, + 'firmware_commit': cpn.find('firmware_commit').text if cpn.find('firmware_commit') is not None else None, + 'firmware_path': cpn.find('firmware_path').text if cpn.find('firmware_path') is not None else None + } + return firmware_dict + except ET.ParseError as e: + print(f"Error parsing XML file: {e}") + sys.exit(1) + except Exception as e: + print(f"Error reading XML file: {e}") + sys.exit(1) + +# Organize the build output files +def organize_output(xml_file, fc_firmware_name, peripherals = {}): + try: + model, model_version = extract_aircraft_info(xml_file) + if model is None or model_version is None: + print("Error: Unable to extract model or model_version") + return + + output_dir = 'final-output' + final_output_dir = os.path.join(output_dir, f"{model}_{model_version}") + os.makedirs(final_output_dir, exist_ok=True) + print(f"Output directory created at {final_output_dir}") + + # Move the firmware binary to the output directory + firmware_bin = f'build/{fc_firmware_name}/bin' + if os.path.exists(firmware_bin): + shutil.copytree(firmware_bin, os.path.join(final_output_dir, fc_firmware_name)) + print(f"Moved FC firmware binary to {final_output_dir}/firmware") + else: + print(f"Error: FC Firmware binary not found at {firmware_bin}") + + # Move the periph firmware binary to the output directory + for firmware_name, firmware in peripherals.items(): + firmware_path = firmware.get('firmware_path') + if firmware_path: + firmware_bins = glob.glob(f'periph-build/*/{firmware_name}') + if firmware_bins: + for firmware_bin in firmware_bins: + shutil.copytree(firmware_bin, os.path.join(final_output_dir, firmware_name)) + print(f"Moved {firmware_bin} firmware binary to {final_output_dir}/{firmware_name}") + else: + print(f"Error: Periph Firmware binary not found at periph-build/*/{firmware_name}") + else: + print(f"Skipping {firmware_name} as firmware_path is empty") + + # move Release Notes ArduPlane/ReleaseNotes.txt to the output directory + release_notes = 'ArduPlane/ReleaseNotes.txt' + if os.path.exists(release_notes): + shutil.copy(release_notes, final_output_dir) + print(f"Moved Release Notes to {final_output_dir}") + + # create a directory AFQT and Rename the xml file to target.xml and move it to the output directory + os.makedirs(os.path.join(final_output_dir, 'AFQT'), exist_ok=True) + target_xml = os.path.join(final_output_dir, 'AFQT', 'target.xml') + shutil.copy(xml_file, target_xml) + print(f"Moved {xml_file} to {target_xml}") + + + except Exception as e: + print(f"Error organizing output: {e}") + sys.exit(1) + +# writea funtion to run a shell commad to build a firmware +def build_firmware(firmware_name): + try: + os.system(f"./waf configure --board={firmware_name}") + os.system("./waf plane") + print(f"Built firmware for {firmware_name}") + except Exception as e: + print(f"Error building firmware: {e}") + sys.exit(1) + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('xml_file', help='Path to the XML file') + parser.add_argument('commit_id', help='Commit ID to replace') + args = parser.parse_args() + + print('XML file:', args.xml_file) + print('Commit ID:', args.commit_id) + + xml_file = args.xml_file + replace_commit_id(xml_file, args.commit_id) + fc_firmware_name = get_firmware_name(xml_file) + if fc_firmware_name: + copy_file(xml_file, fc_firmware_name) + build_firmware(fc_firmware_name) + peripherals = get_periph_firmware_name_dict(xml_file) + organize_output(xml_file, fc_firmware_name, peripherals) + print('Done') + + else: + print('Error: firmware name not found') + sys.exit(1) + + sys.exit(0) diff --git a/Tools/Carbonix_scripts/carbonix_waf_build.sh b/Tools/Carbonix_scripts/carbonix_waf_build.sh index 82f7a0211e..9e1f1295a4 100755 --- a/Tools/Carbonix_scripts/carbonix_waf_build.sh +++ b/Tools/Carbonix_scripts/carbonix_waf_build.sh @@ -1,54 +1,107 @@ #!/bin/bash +echo "Running distclean..." +./waf distclean +rm -Rf output + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +# Set the board name +board=$1 +echo "********************************" +echo "Board name: $board" +echo "********************************" + +# is_periph_board=$(./waf configure --board "$board" -g | tee >(grep -c "env set AP_PERIPH=1")) +is_periph_board=$(./waf configure --board "$board" -g | grep -c "env set AP_PERIPH=1") + # Exit if any command fails set -e -echo "Running distclean..." -./waf distclean +echo "is_periph_board: $is_periph_board" -main_boards=("CubeOrange" "CubeOrangePlus" "CubeOrange-Volanti" "CubeOrangePlus-Volanti" "CubeOrange-Ottano" "CubeOrangePlus-Ottano") -for board in "${main_boards[@]}"; do +if [ $is_periph_board -eq 0 ]; then echo "Compiling ArduPlane for $board..." - ./waf configure --board "$board" -g ./waf plane -done + echo "Script finished successfully." + exit 0 +fi + +# For periph boards, we take the extra step of generating a modified binary +# for each CPN param file in the AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn_params +# folder. This modified binary will have the CPN parameters embedded in it, and +# the board name set to the board name followed by the CPN parameter file name. + +# We build a version of AP_Periph with a long random string as the board name. +# This random string is replaced with the actual board name in the final binary. +# The random string is chosen to be long enough to accommodate the longest board +# name that we expect to use. Currently, we use 40, which is a little larger +# than the longest board name we have used so far: +# "CarbonixF405-no-crystal-Volanti-LWing". (and error is thrown if the board +# name is too long, so we can adjust this if we ever need a longer name) +max_board_name_length=40 +board_magic_string="lm3eBX7cJeaUer67lXdkNr83q2WzPRbE2MxAgnGq9esBjPVecYynx9Pry5sRJMgCX8384NTYZRDpuR8K" +if [ ${#board_magic_string} -lt $max_board_name_length ]; then + echo "max_board_name_length is too long (max ${#board_magic_string} bytes)" + exit 1 +fi +board_magic_string=${board_magic_string:0:max_board_name_length} + +# Compile AP_Periph +echo "Compiling AP_Periph for $board..." +printf "undef CAN_APP_NODE_NAME\ndefine CAN_APP_NODE_NAME \"$board_magic_string\"" > temp.hwdef +./waf configure --board "$board" --extra-hwdef=temp.hwdef -g +./waf AP_Periph -periph_boards=("CarbonixF405" "CarbonixF405-no-crystal") - -# Build all periph board with custom parameters -for board in "${periph_boards[@]}"; do - for file in $(find libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn_params/ -name "*.parm"); do - # Extract the filename without the extension - filename=$(basename -- "$file") - filename="${filename%.*}" - # Extract the Parent folder name - foldername=$(basename -- "$(dirname -- "$file")") - echo "Compiling AP_Periph for $board with $filename with foldername $foldername..." - # Create extra hwdef file - printf "undef CAN_APP_NODE_NAME\ndefine CAN_APP_NODE_NAME \"$board-$filename\"" > temp.hwdef - - # Compile AP_Periph for each board - echo "Compiling AP_Periph for $board with $filename..." - ./waf configure --board "$board" --extra-hwdef=temp.hwdef --default-parameters="$file" -g - ./waf AP_Periph - - # Rename build outputs - mkdir -p output/$foldername/${filename}_$board - # Move all the files (not folders) in build/$board/bin to build/$board/bin/$filename - find build/$board/bin -maxdepth 1 -type f -exec mv {} output/$foldername/${filename}_$board \; - # Move default $file in the output folder - cp $file output/$foldername/${filename}_$board - - # Cleanup - rm temp.hwdef +# Loop through all CPN parameter files and generate modified binaries +bin_folder=build/$board/bin +for file in $(find libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/cpn_params/ -name "*.parm"); do + echo "Processing parameter file $file for $board..." + # Extract the filename without the extension + filename=$(basename -- "$file") + filename="${filename%.*}" + # Extract the Parent folder name + foldername=$(basename -- "$(dirname -- "$file")") + + # Create output folder + output_folder=output/${filename}_$board + mkdir -p $output_folder + # Copy param file in the output folder + cp $file $output_folder + + # The find/replace operation works by converting the binary to a single long + # line of hex, then uses sed to replace the magic string with the board name + # that has been padded with zeros to the same length as the magic string, + # then converts the hex back to binary. + new_board_name="$board-$filename" + if [ ${#new_board_name} -gt $max_board_name_length ]; then + echo "Board name '$new_board_name' is too long (max $max_board_name_length bytes)" + exit 1 + fi + board_magic_string_hex=$(echo -n "$board_magic_string" | xxd -p | tr -d '\n') + board_name_hex=$(echo -n "$new_board_name" | xxd -p | tr -d '\n') + # Pad with zeros to the same length as the magic string + board_name_hex=$(printf "%-${#board_magic_string_hex}s" "$board_name_hex" | tr ' ' '0') + + for binary in $bin_folder/AP_Periph $bin_folder/AP_Periph.bin; do + # Embed the parameters + echo "Embedding parameter file $filename into $binary..." + Tools/scripts/apj_tool.py $binary --set-file $file &> /dev/null + + # Set the board name + echo "Setting board name to $new_board_name in $binary..." + cp $binary $binary.tmp + xxd -p $binary | tr -d '\n' | sed "s/$board_magic_string_hex/$board_name_hex/g" | xxd -r -p > $binary.tmp + mv $binary.tmp $output_folder/$(basename $binary) + echo "Output binary Saved at : $output_folder/$(basename $binary)" done + echo "" done -# Build all Default periph board -for board in "${periph_boards[@]}"; do - echo "Compiling AP_Periph for $board..." - ./waf configure --board "$board" -g - ./waf AP_Periph -done +# Cleanup +rm temp.hwdef echo "Script completed successfully." diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Ottano_AC_1.xml b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Ottano_AC_1.xml new file mode 100644 index 0000000000..5d31518fee --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Ottano_AC_1.xml @@ -0,0 +1,119 @@ + + + + + Ottano + AC_1 + + + CubOrange, + + Split CAN Architecture, + + Crystal CPNs, + CAN Servo, + adsb, + CAN GPS, + CAN Airspeed, + CAN Battery Monitor + + 1 + + + CubeOrange-Ottano + cx_pilot_commit_id + arduplane.apj + + + + 1 + Ottano-M1_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Ottano-M5_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + servo_.MKS-HBL6625:010 + b120233 + + + 1 + servo_.MKS-HBL6625:006 + b120233 + + + 1 + servo_.MKS-HBL6625:011 + b120233 + + + 1 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 1 + Ottano-M4_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + batt_mon_io.p-systems.power-monitor + 108b4bb7 + + + 1 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + 1 + adsb_org.ardupilot.MatekL431-ADSB + 9c6f307f + + + 2 + Ottano-M3_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Ottano-M2_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + servo_.MKS-HBL6625:010 + b120233 + + + 2 + servo_.MKS-HBL6625:006 + b120233 + + + 2 + servo_.MKS-HBL6625:011 + b120233 + + + 2 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 2 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Ottano_AC_2.xml b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Ottano_AC_2.xml new file mode 100644 index 0000000000..3956dedc72 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Ottano_AC_2.xml @@ -0,0 +1,119 @@ + + + + + Ottano + AC_2 + + + CubOrangePlus, + + Split CAN Architecture, + + Crystal CPNs, + CAN Servo, + adsb, + CAN GPS, + CAN Airspeed, + CAN Battery Monitor + + 1 + + + CubeOrangePlus-Ottano + cx_pilot_commit_id + arduplane.apj + + + + 1 + Ottano-M1_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Ottano-M5_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + servo_.MKS-HBL6625:010 + b120233 + + + 1 + servo_.MKS-HBL6625:006 + b120233 + + + 1 + servo_.MKS-HBL6625:011 + b120233 + + + 1 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 1 + Ottano-M4_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + batt_mon_io.p-systems.power-monitor + 108b4bb7 + + + 1 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + 1 + adsb_org.ardupilot.MatekL431-ADSB + 9c6f307f + + + 2 + Ottano-M3_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Ottano-M2_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + servo_.MKS-HBL6625:010 + b120233 + + + 2 + servo_.MKS-HBL6625:006 + b120233 + + + 2 + servo_.MKS-HBL6625:011 + b120233 + + + 2 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 2 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_1.xml b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_1.xml new file mode 100644 index 0000000000..077b01f39c --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_1.xml @@ -0,0 +1,89 @@ + + + + + Volanti + AC_1 + + + CubOrange, + + Diagonal CAN Architecture, + + Non Crystal CPNs, + CAN Airspeed + + 1 + + + CubeOrange-Volanti + cx_pilot_commit_id + arduplane.apj + + + + 1 + Volanti-M1_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-M2_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-M5_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-RWing_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-LTail_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 1 + arspd + cx_pilot_commit_id + + + 2 + Volanti-M3_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-M4_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-LWing_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-RTail_CarbonixF405-no-crystal + cx_pilot_commit_id + AP_Periph.bin + + + 2 + arspd + + + + \ No newline at end of file diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_2.xml b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_2.xml new file mode 100644 index 0000000000..fefd0d46e0 --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_2.xml @@ -0,0 +1,100 @@ + + + + + Volanti + AC_2 + + + CubOrange, + + Diagonal CAN Architecture, + + Crystal CPNs, + CAN GPS, + CAN Airspeed + + 1 + + + CubeOrange-Volanti + cx_pilot_commit_id + arduplane.apj + + + + 1 + Volanti-M1_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-M2_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-M5_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-RWing_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-LTail_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 1 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 1 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + 2 + Volanti-M3_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-M4_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-LWing_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-RTail_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + \ No newline at end of file diff --git a/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_3.xml b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_3.xml new file mode 100644 index 0000000000..2834503c4b --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/CarbonixCommon/aircraft_configuration/Volanti_AC_3.xml @@ -0,0 +1,100 @@ + + + + + Volanti + AC_3 + + + CubOrangePlus, + + Diagonal CAN Architecture, + + Crystal CPNs, + CAN GPS, + CAN Airspeed + + 1 + + + CubeOrangePlus-Volanti + cx_pilot_commit_id + arduplane.apj + + + + 1 + Volanti-M1_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-M2_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-M5_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-RWing_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + Volanti-LTail_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 1 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 1 + gps_org.ardupilot.HolybroG4_GPS + 6e519848 + + + 1 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + 2 + Volanti-M3_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-M4_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-LWing_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + Volanti-RTail_CarbonixF405 + cx_pilot_commit_id + AP_Periph.bin + + + 2 + arspd_org.ardupilot.f405_MatekGPS + 158c7c49 + + + \ No newline at end of file