diff --git a/.github/workflows/cygwin_build.yml b/.github/workflows/cygwin_build.yml index 0d601df2fa..dad336196d 100644 --- a/.github/workflows/cygwin_build.yml +++ b/.github/workflows/cygwin_build.yml @@ -1,6 +1,139 @@ name: Cygwin Build -on: [push, pull_request, workflow_dispatch] +on: + push: + branches: + - CxPilot + - master + paths-ignore: + # remove other vehicles + - 'AntennaTracker/**' + - 'Blimp/**' + # remove non SITL HAL + - 'libraries/AP_HAL_ChibiOS/**' + - 'libraries/AP_HAL_ESP32/**' + # remove non SITL directories + - 'Tools/AP_Bootloader/**' + - 'Tools/AP_Periph/**' + - 'Tools/CHDK-Script/**' + - 'Tools/CPUInfo/**' + - 'Tools/CodeStyle/**' + - 'Tools/FilterTestTool/**' + - 'Tools/Frame_params/**' + - 'Tools/GIT_Test/**' + - 'Tools/Hello/**' + - 'Tools/IO_Firmware/**' + - 'Tools/Linux_HAL_Essentials/**' + - 'Tools/LogAnalyzer/**' + - 'Tools/Pozyx/**' + - 'Tools/PrintVersion.py' + - 'Tools/Replay/**' + - 'Tools/UDP_Proxy/**' + - 'Tools/Vicon/**' + - 'Tools/bootloaders/**' + - 'Tools/completion/**' + - 'Tools/debug/**' + - 'Tools/environment_install/**' + - 'Tools/geotag/**' + - 'Tools/gittools/**' + - 'Tools/mavproxy_modules/**' + - 'Tools/simulink/**' + - 'Tools/vagrant/**' + # 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/**' + + pull_request: + paths-ignore: + # remove other vehicles + - 'AntennaTracker/**' + - '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/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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -10,34 +143,78 @@ jobs: runs-on: 'windows-latest' steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' + - name: Prepare ccache timestamp + id: ccache_cache_timestamp + shell: bash + run: | + NOW=$(date -u +"%F-%T") + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT + WORKFLOWNAME="${{github.workflow}}" + NAME_DASHED=${WORKFLOWNAME//+( )/_} + echo "cache-key=${NAME_DASHED}" >> $GITHUB_OUTPUT + - uses: cygwin/cygwin-install-action@master with: - packages: cygwin64 gcc-g++=10.2.0-1 python37 python37-future python37-lxml python37-pip python37-setuptools python37-wheel git procps gettext + packages: cygwin64 gcc-g++=10.2.0-1 ccache python37 python37-future python37-lxml python37-pip python37-setuptools python37-wheel git procps gettext + add-to-path: false + # Put ccache into github cache for faster build + - name: setup ccache + env: + PATH: /usr/bin:$(cygpath ${SYSTEMROOT})/system32 + shell: C:\cygwin\bin\bash.exe -eo pipefail '{0}' + run: >- + mkdir -p /cygdrive/d/a/ardupilot/ardupilot/ccache && + mkdir -p /usr/local/etc && + echo "export CCACHE_SLOPPINESS=file_stat_matches" >> ~/ccache.conf && + echo "export CCACHE_DIR=/cygdrive/d/a/ardupilot/ardupilot/ccache" >> ~/ccache.conf && + echo "export CCACHE_BASEDIR=/cygdrive/d/a/ardupilot/ardupilot" >> ~/ccache.conf && + echo "export CCACHE_COMPRESS=1" >> ~/ccache.conf && + echo "export CCACHE_COMPRESSLEVEL=6" >> ~/ccache.conf && + echo "export CCACHE_MAXSIZE=400M" >> ~/ccache.conf && + source ~/ccache.conf && + ccache -s + - name: ccache cache files + 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: - HOME: ${{ runner.workspace }}/ardupilot - run: | - bash --login -c "ln -sf /usr/bin/python3.7 /usr/bin/python && ln -sf /usr/bin/pip3.7 /usr/bin/pip" - bash --login -c "python -m pip install empy pexpect" - bash --login -c "python -m pip install dronecan --upgrade" + PATH: /usr/bin:$(cygpath ${SYSTEMROOT})/system32 + shell: C:\cygwin\bin\bash.exe -eo pipefail '{0}' + run: >- + ln -sf /usr/bin/python3.7 /usr/bin/python && ln -sf /usr/bin/pip3.7 /usr/bin/pip && + python -m pip install --progress-bar off empy pexpect && + python -m pip install --progress-bar off dronecan --upgrade && + cp /usr/bin/ccache /usr/local/bin/ && + cd /usr/local/bin && ln -s ccache /usr/local/bin/gcc && + ln -s ccache /usr/local/bin/g++ && + ln -s ccache /usr/local/bin/x86_64-pc-cygwin-gcc && + ln -s ccache /usr/local/bin/x86_64-pc-cygwin-g++ + - name: Build SITL env: - HOME: ${{ runner.workspace }}/ardupilot - run: | - bash --login -c "Tools/scripts/cygwin_build.sh" + PATH: /usr/bin:$(cygpath ${SYSTEMROOT})/system32 + shell: C:\cygwin\bin\bash.exe -eo pipefail '{0}' + run: >- + export PATH=/usr/local/bin:/usr/bin:$(cygpath ${SYSTEMROOT})/system32 && + source ~/ccache.conf && + Tools/scripts/cygwin_build.sh && + ccache -s - name: Check build files id: check_files - uses: andstor/file-existence-action@v1 + uses: andstor/file-existence-action@v2 with: - files: "artifacts/*" - allow_failure: true + files: "artifacts/ArduPlane.elf.exe" + fail: true - name: Archive build - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: binaries path: artifacts diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml deleted file mode 100644 index e142a796ac..0000000000 --- a/.github/workflows/macos_build.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Macos Build - -on: [push, pull_request, workflow_dispatch] -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - runs-on: 'macos-latest' - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - config: [ - sitl, - CubeOrange, - ] - - steps: - - uses: actions/checkout@v2 - with: - submodules: 'recursive' - - name: Install Prerequisites - shell: bash - run: | - if [[ ${{ matrix.config }} == "sitl" ]]; then - export DO_AP_STM_ENV=0 - fi - Tools/environment_install/install-prereqs-mac.sh -y - source ~/.bash_profile - # Put ccache into github cache for faster build - - name: Prepare ccache timestamp - id: ccache_cache_timestamp - run: | - NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" - - name: ccache cache files - uses: actions/cache@v2 - with: - path: ~/.ccache - key: ${{github.workflow}}-ccache-${{matrix.config}}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache-${{matrix.config}} # restore ccache from either previous build on this branch or on master - - name: setup ccache - run: | - . .github/workflows/ccache.env - - name: test build ${{matrix.config}} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - source ~/.bash_profile - PATH="/github/home/.local/bin:$PATH" - echo $PATH - ./waf configure --board ${{matrix.config}} - ./waf - ccache -s - ccache -z diff --git a/.github/workflows/test_ccache.yml b/.github/workflows/test_ccache.yml index dd5d970d5b..062df2173e 100644 --- a/.github/workflows/test_ccache.yml +++ b/.github/workflows/test_ccache.yml @@ -1,9 +1,123 @@ name: test ccache -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +125,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -21,7 +135,7 @@ jobs: gcc: [10] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' - name: ccache test @@ -29,5 +143,5 @@ jobs: 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 CubeOrange,Durandal --min-cache-pct=75 + Tools/scripts/build_tests/test_ccache.py --boards Durandal,Pixhawk6X --min-cache-pct=73 diff --git a/.github/workflows/test_chibios.yml b/.github/workflows/test_chibios.yml index faf560472c..49006accd0 100644 --- a/.github/workflows/test_chibios.yml +++ b/.github/workflows/test_chibios.yml @@ -1,10 +1,131 @@ name: test chibios -on: [push, pull_request, workflow_dispatch] +on: + push: + branches: + - CxPilot + - master + paths-ignore: + # remove non chibios HAL + - 'libraries/AP_HAL_Linux/**' + - 'libraries/AP_HAL_ESP32/**' + - 'libraries/AP_HAL_SITL/**' + # remove non stm directories + - 'Tools/CHDK-Script/**' + - 'Tools/CodeStyle/**' + - 'Tools/completion/**' + - 'Tools/debug/**' + - 'Tools/environment_install/**' + - 'Tools/FilterTestTool/**' + - 'Tools/Frame_params/**' + - 'Tools/geotag/**' + - 'Tools/GIT_Test/**' + - 'Tools/gittools/**' + - 'Tools/Hello/**' + - 'Tools/LogAnalyzer/**' + - 'Tools/mavproxy_modules/**' + - 'Tools/Pozyx/**' + - 'Tools/PrintVersion.py' + - 'Tools/Replay/**' + - 'Tools/simulink/**' + - 'Tools/UDP_Proxy/**' + - 'Tools/vagrant/**' + - 'Tools/Vicon/**' + # Remove vehicles autotest we need support of test_build_option.py in the Tools/autotest directory + - 'Tools/autotest/antennatracker.py' + - 'Tools/autotest/arduplane.py' + - 'Tools/autotest/ardusub.py' + - 'Tools/autotest/balancebot.py' + - 'Tools/autotest/location.txt' + - 'Tools/autotest/quadplane.py' + - 'Tools/autotest/rover.py' + - 'Tools/autotest/sailboat.py' + - 'Tools/autotest/swarminit.txt' + # Remove markdown files as irrelevant + - '**.md' + # Remove dotfile at root directory + - './.dir-locals.el' + - './.dockerignore' + - './.editorconfig' + - './.flake8' + - './.gitattributes' + - './.github' + - './.gitignore' + - './.pre-commit-config.yaml' + - './.pydevproject' + - './.valgrind-suppressions' + - './.valgrindrc' + - 'Dockerfile' + - 'Vagrantfile' + - 'Makefile' + # Remove some directories check + - '.vscode/**' + - '.github/ISSUE_TEMPLATE/**' + + pull_request: + paths-ignore: + # remove non chibios HAL + - 'libraries/AP_HAL_Linux/**' + - 'libraries/AP_HAL_ESP32/**' + - 'libraries/AP_HAL_SITL/**' + # remove non stm directories + - 'Tools/CHDK-Script/**' + - 'Tools/CodeStyle/**' + - 'Tools/completion/**' + - 'Tools/debug/**' + - 'Tools/environment_install/**' + - 'Tools/FilterTestTool/**' + - 'Tools/Frame_params/**' + - 'Tools/geotag/**' + - 'Tools/GIT_Test/**' + - 'Tools/gittools/**' + - 'Tools/Hello/**' + - 'Tools/LogAnalyzer/**' + - 'Tools/mavproxy_modules/**' + - 'Tools/Pozyx/**' + - 'Tools/PrintVersion.py' + - 'Tools/Replay/**' + - 'Tools/simulink/**' + - 'Tools/UDP_Proxy/**' + - 'Tools/vagrant/**' + - 'Tools/Vicon/**' + # Remove vehicles autotest we need support of test_build_option.py in the Tools/autotest directory + - 'Tools/autotest/antennatracker.py' + - 'Tools/autotest/arduplane.py' + - 'Tools/autotest/ardusub.py' + - 'Tools/autotest/autotest.py' + - 'Tools/autotest/balancebot.py' + - 'Tools/autotest/common.py' + - 'Tools/autotest/examples.py' + - 'Tools/autotest/quadplane.py' + - 'Tools/autotest/rover.py' + - 'Tools/autotest/sailboat.py' + - 'Tools/autotest/**.txt' + - 'Tools/autotest/logger_metadata/**' + - 'Tools/autotest/param_metadata/**' + # Remove markdown files as irrelevant + - '**.md' + # Remove dotfile at root directory + - './.dir-locals.el' + - './.dockerignore' + - './.editorconfig' + - './.flake8' + - './.gitattributes' + - './.github' + - './.gitignore' + - './.pre-commit-config.yaml' + - './.pydevproject' + - './.valgrind-suppressions' + - './.valgrindrc' + - 'Dockerfile' + - 'Vagrantfile' + - 'Makefile' + # Remove some directories check + - '.vscode/**' + - '.github/ISSUE_TEMPLATE/**' + + workflow_dispatch: -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -12,7 +133,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -34,32 +155,17 @@ jobs: signing ] toolchain: [ - chibios, # GCC-6 + chibios, #chibios-clang, ] - gcc: [6, 10] + gcc: [10] exclude: - gcc: 10 toolchain: chibios-clang - - gcc: 6 - config: fmuv2-plane - - gcc: 6 - config: revo-mini - - gcc: 6 - config: MatekF405-Wing - - gcc: 6 - config: periph-build - - gcc: 6 - config: CubeOrange-ODID - - gcc: 6 - config: signing - include: - - config: stm32h7 - toolchain: chibios-py2 steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -67,9 +173,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{matrix.config}}-${{ matrix.toolchain }}-${{ matrix.gcc }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -82,6 +188,7 @@ jobs: 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++ diff --git a/.github/workflows/test_coverage.yml b/.github/workflows/test_coverage.yml index b700fa830e..ed9bc392ef 100644 --- a/.github/workflows/test_coverage.yml +++ b/.github/workflows/test_coverage.yml @@ -29,7 +29,7 @@ jobs: ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -37,9 +37,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "{timestamp}=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} diff --git a/.github/workflows/test_environment.yml b/.github/workflows/test_environment.yml deleted file mode 100644 index ee34b50aaf..0000000000 --- a/.github/workflows/test_environment.yml +++ /dev/null @@ -1,126 +0,0 @@ -name: test environment setup -on: - schedule: - - cron: '0 0 * * 6' # every saturday at midnight - workflow_dispatch: - - -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-20.04 - container: - image: ${{matrix.os}}:${{matrix.name}} - options: --privileged - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - include: - - os: ubuntu - name: bionic - - os: ubuntu - name: focal - - os: ubuntu - name: hirsute - - os: archlinux - name: latest - - os: debian - name: bullseye - - os: debian - name: buster - steps: - - name: Install Git - timeout-minutes: 30 - env: - DEBIAN_FRONTEND: noninteractive - TZ: Europe/Paris - shell: 'script -q -e -c "bash {0}"' - run: | - case ${{matrix.os}} in - *"ubuntu"*) - apt-get update && apt-get install --no-install-recommends -qy \ - lsb-release \ - sudo \ - git \ - software-properties-common - add-apt-repository ppa:git-core/ppa -y - apt-get update && apt-get install --no-install-recommends -qy git - ;; - *"debian"*) - apt-get update && apt-get install --no-install-recommends -qy \ - lsb-release \ - sudo \ - git \ - software-properties-common - ;; - *"archlinux"*) - pacman -Sy --noconfirm --needed git sudo - ;; - esac - - # git checkout the PR - - uses: actions/checkout@v2 - with: - submodules: 'recursive' - - name: test install environment ${{matrix.os}}.${{matrix.name}} - timeout-minutes: 30 - env: - DISABLE_MAVNATIVE: True - DEBIAN_FRONTEND: noninteractive - TZ: Europe/Paris - SKIP_AP_GIT_CHECK: 1 - shell: 'script -q -e -c "bash {0}"' - run: | - PATH="/github/home/.local/bin:$PATH" - ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - sed -i 's/\$EUID/\$ID/' Tools/environment_install/install-prereqs-ubuntu.sh - sed -i 's/sudo usermod/\#sudo usermod/' Tools/environment_install/install-prereqs-ubuntu.sh - sed -i 's/sudo usermod/\#sudo usermod/' Tools/environment_install/install-prereqs-arch.sh - case ${{matrix.os}} in - *"ubuntu"*) - echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections - Tools/environment_install/install-prereqs-ubuntu.sh -qy - ;; - *"debian"*) - Tools/environment_install/install-prereqs-ubuntu.sh -qy - ;; - *"archlinux"*) - cp /etc/skel/.bashrc /root - cp /etc/skel/.bashrc /github/home - git config --global --add safe.directory /__w/ardupilot/ardupilot - Tools/environment_install/install-prereqs-arch.sh -qy - ;; - esac - - - name: test build STIL ${{matrix.os}}.${{matrix.name}} - env: - DISABLE_MAVNATIVE: True - DEBIAN_FRONTEND: noninteractive - TZ: Europe/Paris - shell: 'script -q -e -c "bash {0}"' - run: | - source ~/.bashrc - git config --global --add safe.directory /__w/ardupilot/ardupilot - ./waf configure - ./waf rover - - - name: test build Chibios ${{matrix.os}}.${{matrix.name}} - env: - DISABLE_MAVNATIVE: True - DEBIAN_FRONTEND: noninteractive - TZ: Europe/Paris - shell: 'script -q -e -c "bash {0}"' - run: | - source ~/.bashrc - case ${{matrix.os}} in - *"archlinux"*) - export PATH=/opt/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH - export PATH=/__w/ardupilot/ardupilot/ardupilot/Tools/autotest:$PATH - ;; - esac - git config --global --add safe.directory /__w/ardupilot/ardupilot - ./waf configure --board CubeOrange - ./waf plane diff --git a/.github/workflows/test_linux_sbc.yml b/.github/workflows/test_linux_sbc.yml index e36a28fc3d..b44ec5454f 100644 --- a/.github/workflows/test_linux_sbc.yml +++ b/.github/workflows/test_linux_sbc.yml @@ -1,9 +1,132 @@ name: test Linux SBC -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + pull_request: + 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 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +134,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -43,7 +166,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -51,13 +174,13 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{matrix.config}}-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} - restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master + 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 @@ -66,6 +189,7 @@ jobs: 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++ diff --git a/.github/workflows/test_replay.yml b/.github/workflows/test_replay.yml index 7ecae879f4..4a85335e0f 100644 --- a/.github/workflows/test_replay.yml +++ b/.github/workflows/test_replay.yml @@ -1,9 +1,145 @@ name: test replay -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +147,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -24,7 +160,7 @@ jobs: ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -32,9 +168,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -47,6 +183,7 @@ jobs: 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++ @@ -55,7 +192,7 @@ jobs: Tools/scripts/build_ci.sh - name: Archive buildlog artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{ matrix.toolchain }}-${{matrix.config}} diff --git a/.github/workflows/test_scripting_docs.yml b/.github/workflows/test_scripting_docs.yml new file mode 100644 index 0000000000..2be32b0e9f --- /dev/null +++ b/.github/workflows/test_scripting_docs.yml @@ -0,0 +1,51 @@ +name: test scripting + +on: + push: + branches: + - 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-20.04 + container: ardupilot/ardupilot-dev-base:v0.0.29 + steps: + # git checkout the PR + - uses: actions/checkout@v3 + with: + submodules: 'recursive' + + - 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_sitl_copter.yml b/.github/workflows/test_sitl_copter.yml index 28c72a64f0..c22d586db6 100644 --- a/.github/workflows/test_sitl_copter.yml +++ b/.github/workflows/test_sitl_copter.yml @@ -1,9 +1,158 @@ name: test copter -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + + pull_request: + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +160,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -21,7 +170,7 @@ jobs: ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -29,9 +178,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -42,6 +191,7 @@ jobs: - 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++ @@ -56,7 +206,7 @@ jobs: 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-20.04 container: - image: ardupilot/ardupilot-dev-base:latest + image: ardupilot/ardupilot-dev-base:v0.0.29 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 @@ -73,7 +223,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -81,9 +231,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache/restore@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -96,11 +246,12 @@ jobs: 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@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{matrix.config}} @@ -114,7 +265,7 @@ jobs: retention-days: 14 - name: Archive .bin artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: BIN-${{matrix.config}} path: /__w/ardupilot/ardupilot/logs @@ -123,11 +274,11 @@ jobs: build-gcc-heli: runs-on: ubuntu-20.04 container: - image: ardupilot/ardupilot-dev-base:latest + image: ardupilot/ardupilot-dev-base:v0.0.29 options: --privileged --cap-add=SYS_PTRACE --security-opt apparmor=unconfined --security-opt seccomp=unconfined steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -135,9 +286,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -148,6 +299,7 @@ jobs: - 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 @@ -157,7 +309,7 @@ jobs: 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-20.04 - container: ardupilot/ardupilot-dev-base:latest + container: ardupilot/ardupilot-dev-base:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -167,7 +319,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -175,9 +327,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache/restore@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -190,11 +342,12 @@ jobs: 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@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{matrix.config}} @@ -208,7 +361,7 @@ jobs: retention-days: 14 - name: Archive .bin artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: BIN-${{matrix.config}} path: /__w/ardupilot/ardupilot/logs diff --git a/.github/workflows/test_sitl_periph.yml b/.github/workflows/test_sitl_periph.yml index 8a517adf87..f26d3e7b76 100644 --- a/.github/workflows/test_sitl_periph.yml +++ b/.github/workflows/test_sitl_periph.yml @@ -1,9 +1,157 @@ name: test ap_periph -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,10 +159,10 @@ concurrency: jobs: build-gcc-ap_periph: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-base:latest + container: ardupilot/ardupilot-dev-periph:v0.0.29 steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -22,9 +170,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -32,11 +180,6 @@ jobs: - name: setup ccache run: | . .github/workflows/ccache.env - - name: install 32-bit libraries - run: | - dpkg --add-architecture i386 - apt-get update - apt-get install -y gcc-multilib g++-multilib - name: run dronecan dsdlc generator test run: | @@ -46,6 +189,7 @@ jobs: - name: build sitl_periph_gps shell: bash run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} PATH="/github/home/.local/bin:$PATH" ./waf configure --board sitl_periph_gps ./waf build --target bin/AP_Periph @@ -56,7 +200,7 @@ jobs: 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-20.04 container: - image: ardupilot/ardupilot-dev-base:latest + image: ardupilot/ardupilot-dev-periph:v0.0.29 options: --privileged strategy: fail-fast: false # don't cancel if a job from the matrix fails @@ -67,7 +211,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -75,9 +219,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -85,11 +229,6 @@ jobs: - name: setup ccache run: | . .github/workflows/ccache.env - - name: install 32-bit libraries - run: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y gcc-multilib g++-multilib - name: setup can-utils run: | kernel_ver=`uname -r` @@ -104,6 +243,7 @@ jobs: 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" diff --git a/.github/workflows/test_sitl_plane.yml b/.github/workflows/test_sitl_plane.yml index 3640bc4e90..a91cf72735 100644 --- a/.github/workflows/test_sitl_plane.yml +++ b/.github/workflows/test_sitl_plane.yml @@ -1,9 +1,159 @@ name: test plane -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +161,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -21,7 +171,7 @@ jobs: ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -29,9 +179,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -42,6 +192,7 @@ jobs: - 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++ @@ -56,7 +207,7 @@ jobs: 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-20.04 container: - image: ardupilot/ardupilot-dev-base:latest + image: ardupilot/ardupilot-dev-base:v0.0.29 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 @@ -68,7 +219,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -76,9 +227,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache/restore@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -91,11 +242,12 @@ jobs: 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@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{matrix.config}} @@ -109,7 +261,7 @@ jobs: retention-days: 14 - name: Archive .bin artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: BIN-${{matrix.config}} path: /__w/ardupilot/ardupilot/logs diff --git a/.github/workflows/test_sitl_rover.yml b/.github/workflows/test_sitl_rover.yml index f14ffcf919..c519164478 100644 --- a/.github/workflows/test_sitl_rover.yml +++ b/.github/workflows/test_sitl_rover.yml @@ -1,9 +1,158 @@ name: test rover -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + + pull_request: + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +160,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -21,7 +170,7 @@ jobs: ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -29,9 +178,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -42,6 +191,7 @@ jobs: - name: build rover ${{ matrix.toolchain }} shell: bash run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} if [[ ${{ matrix.toolchain }} == "clang" ]]; then export CC=clang export CXX=clang++ @@ -56,7 +206,7 @@ jobs: 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-20.04 container: - image: ardupilot/ardupilot-dev-base:latest + image: ardupilot/ardupilot-dev-base:v0.0.29 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 @@ -69,7 +219,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -77,9 +227,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache/restore@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -92,11 +242,12 @@ jobs: 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@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{matrix.config}} @@ -110,7 +261,7 @@ jobs: retention-days: 14 - name: Archive .bin artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: BIN-${{matrix.config}} path: /__w/ardupilot/ardupilot/logs diff --git a/.github/workflows/test_sitl_sub.yml b/.github/workflows/test_sitl_sub.yml index 39c25c28b5..04eaf44c50 100644 --- a/.github/workflows/test_sitl_sub.yml +++ b/.github/workflows/test_sitl_sub.yml @@ -1,9 +1,161 @@ name: test sub -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + pull_request: + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +163,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -21,7 +173,7 @@ jobs: ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -29,9 +181,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -42,6 +194,7 @@ jobs: - 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++ @@ -56,7 +209,7 @@ jobs: 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-20.04 container: - image: ardupilot/ardupilot-dev-base:latest + image: ardupilot/ardupilot-dev-base:v0.0.29 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 @@ -67,7 +220,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -75,9 +228,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache/restore@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -90,11 +243,12 @@ jobs: 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@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{matrix.config}} @@ -108,7 +262,7 @@ jobs: retention-days: 14 - name: Archive .bin artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: BIN-${{matrix.config}} path: /__w/ardupilot/ardupilot/logs diff --git a/.github/workflows/test_sitl_tracker.yml b/.github/workflows/test_sitl_tracker.yml index 8c6abec961..81307adf5d 100644 --- a/.github/workflows/test_sitl_tracker.yml +++ b/.github/workflows/test_sitl_tracker.yml @@ -1,9 +1,161 @@ name: test tracker -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change +on: + push: + branches: + - 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/**' + + pull_request: + 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/**' + + workflow_dispatch: + concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -11,7 +163,7 @@ concurrency: jobs: build: runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:latest + container: ardupilot/ardupilot-dev-${{ matrix.toolchain }}:v0.0.29 strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: @@ -21,7 +173,7 @@ jobs: ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -29,9 +181,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -42,6 +194,7 @@ jobs: - 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++ @@ -56,7 +209,7 @@ jobs: 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-20.04 container: - image: ardupilot/ardupilot-dev-base:latest + image: ardupilot/ardupilot-dev-base:v0.0.29 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 @@ -67,7 +220,7 @@ jobs: steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -75,9 +228,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache/restore@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -90,11 +243,12 @@ jobs: 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@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{matrix.config}} @@ -108,7 +262,7 @@ jobs: retention-days: 14 - name: Archive .bin artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: BIN-${{matrix.config}} path: /__w/ardupilot/ardupilot/logs diff --git a/.github/workflows/test_size.yml b/.github/workflows/test_size.yml deleted file mode 100644 index ed38175a1f..0000000000 --- a/.github/workflows/test_size.yml +++ /dev/null @@ -1,170 +0,0 @@ -name: test size - -on: [pull_request] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change -concurrency: - group: ci-${{github.workflow}}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-20.04 - container: ardupilot/ardupilot-dev-chibios:latest - strategy: - fail-fast: false # don't cancel if a job from the matrix fails - matrix: - toolchain: [ - base, # GCC - ] - config: [ - Durandal, - MatekF405, - Pixhawk1-1M, - Hitec-Airspeed, # see special code for Periph below (3 places!) - f103-GPS # see special code for Periph below (3 places!) - ] - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.base.ref }} - path: base_branch - 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 "::set-output name=timestamp::${NOW}" - - name: ccache cache files - uses: actions/cache@v2 - 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 base branch - - name: Build ${{ github.event.pull_request.base.ref }} ${{matrix.config}} ${{ matrix.toolchain }} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - PATH="/github/home/.local/bin:$PATH" - cd base_branch - ./waf configure --board ${{matrix.config}} - if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || - [ "${{matrix.config}}" = "f103-GPS" ]; then - ./waf AP_Periph - else - ./waf - fi - mkdir -p $GITHUB_WORKSPACE/base_branch_bin - cp -r build/${{matrix.config}}/bin/* $GITHUB_WORKSPACE/base_branch_bin/ - - # build a set of binaries without symbols so we can check if - # the binaries have changed. - echo [`date`] Building ${{ github.event.pull_request.base.ref }} with no versions - - NO_VERSIONS_DIR="$GITHUB_WORKSPACE/base_branch_bin_no_versions" - mkdir "$NO_VERSIONS_DIR" - - if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || - [ "${{matrix.config}}" = "f103-GPS" ]; then - CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" GIT_VERSION_INT="15" ./waf AP_Periph - else - CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" GIT_VERSION_INT="15" ./waf - fi - cp -r build/${{matrix.config}}/bin/* "$NO_VERSIONS_DIR" - - echo [`date`] Built ${{ github.event.pull_request.base.ref }} with no versions - - - uses: actions/checkout@v2 - with: - fetch-depth: 0 - path: 'pr' - - - name: Build PR rebased ${{matrix.config}} ${{ matrix.toolchain }} - env: - CI_BUILD_TARGET: ${{matrix.config}} - shell: bash - run: | - PATH="/github/home/.local/bin:$PATH" - cd pr/ - git config user.email "ardupilot-ci@ardupilot.org" - git config user.name "ArduPilot CI" - git remote add ardupilot https://github.com/ArduPilot/ardupilot.git - git fetch --no-tags --prune --progress ardupilot ${{ github.event.pull_request.base.ref }} - git rebase ardupilot/${{ github.event.pull_request.base.ref }} - git submodule update --init --recursive --depth=1 - ./waf configure --board ${{matrix.config}} - if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || - [ "${{matrix.config}}" = "f103-GPS" ]; then - ./waf AP_Periph - else - ./waf - fi - mkdir $GITHUB_WORKSPACE/pr_bin - cp -r build/${{matrix.config}}/bin/* $GITHUB_WORKSPACE/pr_bin/ - - # build a set of binaries without symbols so we can check if - # the binaries have changed. - echo [`date`] Building PR with no versions - - NO_VERSIONS_DIR="$GITHUB_WORKSPACE/pr_bin_no_versions" - mkdir "$NO_VERSIONS_DIR" - - if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || - [ "${{matrix.config}}" = "f103-GPS" ]; then - CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" GIT_VERSION_INT="15" ./waf AP_Periph - else - CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" GIT_VERSION_INT="15" ./waf - fi - cp -r build/${{matrix.config}}/bin/* "$NO_VERSIONS_DIR" - - echo [`date`] Built PR with no versions - - # build MatekF405 Plane without quadplane - if [ "${{matrix.config}}" = "MatekF405" ]; then - PLANE_BINARY="build/MatekF405/bin/arduplane.bin" - echo "normal size" - ls -l "$PLANE_BINARY" - EXTRA_HWDEF="/tmp/extra-options.def" - echo "define HAL_QUADPLANE_ENABLED 0" >"$EXTRA_HWDEF" - ./waf configure --board ${{matrix.config}} --extra-hwdef="$EXTRA_HWDEF" - ./waf plane - rm "$EXTRA_HWDEF" - echo "non-quadplane size:" - ls -l "$PLANE_BINARY" - fi - - - name: Full size compare with base branch - shell: bash - run: | - cd pr/ - python3 -m pip install -U tabulate - Tools/scripts/pretty_diff_size.py -m $GITHUB_WORKSPACE/base_branch_bin -s $GITHUB_WORKSPACE/pr_bin - - - name: Checksum compare with ${{ github.event.pull_request.base.ref }} - shell: bash - run: | - diff -r $GITHUB_WORKSPACE/base_branch_bin_no_versions $GITHUB_WORKSPACE/pr_bin_no_versions --exclude=*.elf --exclude=*.apj || true - - - name: elf_diff compare with ${{ github.event.pull_request.base.ref }} - shell: bash - run: | - python3 -m pip install -U weasyprint elf_diff anytree - mkdir elf_diff - if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || - [ "${{matrix.config}}" = "f103-GPS" ]; then - python3 -m elf_diff --bin_prefix=arm-none-eabi- --html_dir=elf_diff/AP_Periph $GITHUB_WORKSPACE/base_branch_bin/AP_Periph $GITHUB_WORKSPACE/pr_bin/AP_Periph - else - python3 -m elf_diff --bin_prefix=arm-none-eabi- --html_dir=elf_diff/plane $GITHUB_WORKSPACE/base_branch_bin/arduplane $GITHUB_WORKSPACE/pr_bin/arduplane - python3 -m elf_diff --bin_prefix=arm-none-eabi- --html_dir=elf_diff/copter $GITHUB_WORKSPACE/base_branch_bin/arducopter $GITHUB_WORKSPACE/pr_bin/arducopter - fi - zip -r elf_diff.zip elf_diff - - - name: Archive elf_diff output - uses: actions/upload-artifact@v2 - with: - name: ELF_DIFF_${{matrix.config}} - path: elf_diff.zip - retention-days: 14 diff --git a/.github/workflows/test_unit_tests.yml b/.github/workflows/test_unit_tests.yml index eba8083a9d..329a4c2a62 100644 --- a/.github/workflows/test_unit_tests.yml +++ b/.github/workflows/test_unit_tests.yml @@ -1,9 +1,97 @@ -name: test unit tests and Python cleanliness +name: test unit tests and sitl building + +on: + push: + branches: + - 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/**' + 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/**' + workflow_dispatch: -on: [push, pull_request, workflow_dispatch] -# paths: -# - "*" -# - "!README.md" <-- don't rebuild on doc change concurrency: group: ci-${{github.workflow}}-${{ github.ref }} cancel-in-progress: true @@ -23,13 +111,12 @@ jobs: ] config: [ unit-tests, - # python-cleanliness, # DISABLED for 4.3.x sitl # examples, ] steps: # git checkout the PR - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: 'recursive' # Put ccache into github cache for faster build @@ -37,9 +124,9 @@ jobs: id: ccache_cache_timestamp run: | NOW=$(date -u +"%F-%T") - echo "::set-output name=timestamp::${NOW}" + echo "timestamp=${NOW}" >> $GITHUB_OUTPUT - name: ccache cache files - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.ccache key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} @@ -52,6 +139,7 @@ jobs: 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++ @@ -60,7 +148,7 @@ jobs: Tools/scripts/build_ci.sh - name: Archive buildlog artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 if: failure() with: name: fail-${{ matrix.toolchain }}-${{matrix.config}} diff --git a/Tools/autotest/arducopter.py b/Tools/autotest/arducopter.py index e6b07cfee5..33f31bbaf7 100644 --- a/Tools/autotest/arducopter.py +++ b/Tools/autotest/arducopter.py @@ -9103,6 +9103,7 @@ def disabled_tests(self): "AltEstimation": "See https://github.com/ArduPilot/ardupilot/issues/15191", "GroundEffectCompensation_takeOffExpected": "Flapping", "GroundEffectCompensation_touchDownExpected": "Flapping", + "GyroFFTAverage": "Feature disabled, see https://github.com/ardupilot/ardupilot/commit/a4835634e043b1038f04226d219ac4a4fdd87897" } diff --git a/Tools/scripts/cygwin_build.sh b/Tools/scripts/cygwin_build.sh index 7761bd5ae3..b0a4895033 100755 --- a/Tools/scripts/cygwin_build.sh +++ b/Tools/scripts/cygwin_build.sh @@ -17,7 +17,7 @@ $GPP_COMPILER -print-sysroot SYS_ROOT=$($GPP_COMPILER -print-sysroot) echo "SYS_ROOT=$SYS_ROOT" -git config --global --add safe.directory /cygdrive/d/a/ardupilot/ardupilot +git config --global --add safe.directory /cygdrive/d/a/carbopilot_V2/carbopilot_V2 rm -rf artifacts mkdir artifacts @@ -25,25 +25,25 @@ mkdir artifacts ( python ./waf --color yes --toolchain $TOOLCHAIN --board sitl configure 2>&1 python ./waf plane 2>&1 - python ./waf copter 2>&1 - python ./waf heli 2>&1 - python ./waf rover 2>&1 - python ./waf sub 2>&1 ) | tee artifacts/build.txt + # python ./waf copter 2>&1 + # python ./waf heli 2>&1 + # python ./waf rover 2>&1 + # python ./waf sub 2>&1 # copy both with exe and without to cope with differences # between windows versions in CI cp -v build/sitl/bin/arduplane artifacts/ArduPlane.elf.exe -cp -v build/sitl/bin/arducopter artifacts/ArduCopter.elf.exe -cp -v build/sitl/bin/arducopter-heli artifacts/ArduHeli.elf.exe -cp -v build/sitl/bin/ardurover artifacts/ArduRover.elf.exe -cp -v build/sitl/bin/ardusub artifacts/ArduSub.elf.exe +# cp -v build/sitl/bin/arducopter artifacts/ArduCopter.elf.exe +# cp -v build/sitl/bin/arducopter-heli artifacts/ArduHeli.elf.exe +# cp -v build/sitl/bin/ardurover artifacts/ArduRover.elf.exe +# cp -v build/sitl/bin/ardusub artifacts/ArduSub.elf.exe cp -v build/sitl/bin/arduplane artifacts/ArduPlane.elf -cp -v build/sitl/bin/arducopter artifacts/ArduCopter.elf -cp -v build/sitl/bin/arducopter-heli artifacts/ArduHeli.elf -cp -v build/sitl/bin/ardurover artifacts/ArduRover.elf -cp -v build/sitl/bin/ardusub artifacts/ArduSub.elf +# cp -v build/sitl/bin/arducopter artifacts/ArduCopter.elf +# cp -v build/sitl/bin/arducopter-heli artifacts/ArduHeli.elf +# cp -v build/sitl/bin/ardurover artifacts/ArduRover.elf +# cp -v build/sitl/bin/ardusub artifacts/ArduSub.elf # Find all cyg*.dll files returned by cygcheck for each exe in artifacts # and copy them over diff --git a/libraries/AP_EFI/AP_EFI_Currawong_ECU.cpp b/libraries/AP_EFI/AP_EFI_Currawong_ECU.cpp index 091537807c..4a2d23a74f 100644 --- a/libraries/AP_EFI/AP_EFI_Currawong_ECU.cpp +++ b/libraries/AP_EFI/AP_EFI_Currawong_ECU.cpp @@ -19,10 +19,12 @@ * Author: Reilly Callaway / Currawong Engineering Pty Ltd */ -#include "AP_EFI_Currawong_ECU.h" +#include "AP_EFI_config.h" + -#if HAL_EFI_CURRAWONG_ECU_ENABLED +#if HAL_EFI_ENABLED && HAL_EFI_CURRAWONG_ECU_ENABLED +#include "AP_EFI_Currawong_ECU.h" #include #include #include @@ -103,4 +105,4 @@ bool AP_EFI_Currawong_ECU::handle_message(AP_HAL::CANFrame &frame) return valid; } -#endif // HAL_EFI_CURRAWONG_ECU_ENABLED +#endif // HAL_EFI_CURRAWONG_ECU_ENABLED && HAL_EFI_ENABLED diff --git a/libraries/AP_EFI/AP_EFI_Currawong_ECU.h b/libraries/AP_EFI/AP_EFI_Currawong_ECU.h index 89387e9dd4..f87a15d2b7 100644 --- a/libraries/AP_EFI/AP_EFI_Currawong_ECU.h +++ b/libraries/AP_EFI/AP_EFI_Currawong_ECU.h @@ -21,14 +21,12 @@ #pragma once -#include "AP_EFI.h" -#include "AP_EFI_Backend.h" +#include "AP_EFI_config.h" -#ifndef HAL_EFI_CURRAWONG_ECU_ENABLED -#define HAL_EFI_CURRAWONG_ECU_ENABLED HAL_MAX_CAN_PROTOCOL_DRIVERS && (BOARD_FLASH_SIZE > 1024) -#endif +#if HAL_EFI_ENABLED && HAL_EFI_CURRAWONG_ECU_ENABLED -#if HAL_EFI_CURRAWONG_ECU_ENABLED +#include "AP_EFI.h" +#include "AP_EFI_Backend.h" class AP_EFI_Currawong_ECU : public AP_EFI_Backend { public: @@ -49,5 +47,5 @@ class AP_EFI_Currawong_ECU : public AP_EFI_Backend { friend class AP_PiccoloCAN; }; -#endif // HAL_EFI_CURRAWONG_ECU_ENABLED +#endif // HAL_EFI_CURRAWONG_ECU_ENABLED && HAL_EFI_ENABLED diff --git a/libraries/AP_EFI/AP_EFI_DroneCAN.cpp b/libraries/AP_EFI/AP_EFI_DroneCAN.cpp index 21d374250f..bbabee1fed 100644 --- a/libraries/AP_EFI/AP_EFI_DroneCAN.cpp +++ b/libraries/AP_EFI/AP_EFI_DroneCAN.cpp @@ -1,11 +1,9 @@ -#include #include "AP_EFI_config.h" -#if HAL_EFI_ENABLED -#include "AP_EFI_DroneCAN.h" - -#if HAL_EFI_DRONECAN_ENABLED +#if HAL_EFI_ENABLED && HAL_EFI_DRONECAN_ENABLED +#include +#include "AP_EFI_DroneCAN.h" #include #include @@ -167,5 +165,4 @@ void AP_EFI_DroneCAN::handle_status(const uavcan::equipment::ice::reciprocating: copy_to_frontend(); } -#endif // HAL_EFI_DRONECAN_ENABLED -#endif // HAL_EFI_ENABLED +#endif // HAL_EFI_DRONECAN_ENABLED && HAL_EFI_ENABLED diff --git a/libraries/AP_EFI/AP_EFI_DroneCAN.h b/libraries/AP_EFI/AP_EFI_DroneCAN.h index 35c02d5e37..7d2d5e2b40 100644 --- a/libraries/AP_EFI/AP_EFI_DroneCAN.h +++ b/libraries/AP_EFI/AP_EFI_DroneCAN.h @@ -1,13 +1,10 @@ #pragma once +#include "AP_EFI_config.h" + +#if HAL_EFI_ENABLED && HAL_EFI_DRONECAN_ENABLED #include "AP_EFI.h" #include "AP_EFI_Backend.h" - -#ifndef HAL_EFI_DRONECAN_ENABLED -#define HAL_EFI_DRONECAN_ENABLED HAL_MAX_CAN_PROTOCOL_DRIVERS && BOARD_FLASH_SIZE > 1024 && HAL_CANMANAGER_ENABLED -#endif - -#if HAL_EFI_DRONECAN_ENABLED #include #include @@ -28,5 +25,5 @@ class AP_EFI_DroneCAN : public AP_EFI_Backend { // singleton for trampoline static AP_EFI_DroneCAN *driver; }; -#endif // HAL_EFI_DRONECAN_ENABLED +#endif // HAL_EFI_DRONECAN_ENABLED && HAL_EFI_ENABLED diff --git a/libraries/AP_EFI/AP_EFI_config.h b/libraries/AP_EFI/AP_EFI_config.h index 368e71e3f6..257da4b9bf 100644 --- a/libraries/AP_EFI/AP_EFI_config.h +++ b/libraries/AP_EFI/AP_EFI_config.h @@ -23,3 +23,31 @@ #ifndef AP_EFI_THROTTLE_LINEARISATION_ENABLED #define AP_EFI_THROTTLE_LINEARISATION_ENABLED AP_EFI_SERIAL_HIRTH_ENABLED #endif + +#ifndef HAL_EFI_CURRAWONG_ECU_ENABLED +#define HAL_EFI_CURRAWONG_ECU_ENABLED HAL_MAX_CAN_PROTOCOL_DRIVERS && (BOARD_FLASH_SIZE > 1024) +#endif + +#ifndef HAL_EFI_DRONECAN_ENABLED +#define HAL_EFI_DRONECAN_ENABLED HAL_MAX_CAN_PROTOCOL_DRIVERS && BOARD_FLASH_SIZE > 1024 && HAL_CANMANAGER_ENABLED +#endif + +#ifndef AP_EFI_MAV_ENABLED +#define AP_EFI_MAV_ENABLED AP_EFI_BACKEND_DEFAULT_ENABLED +#endif + +#ifndef AP_EFI_NWPWU_ENABLED +#define AP_EFI_NWPWU_ENABLED AP_EFI_BACKEND_DEFAULT_ENABLED && HAL_MAX_CAN_PROTOCOL_DRIVERS +#endif + +#ifndef AP_EFI_SCRIPTING_ENABLED +#define AP_EFI_SCRIPTING_ENABLED (AP_EFI_BACKEND_DEFAULT_ENABLED && AP_SCRIPTING_ENABLED) +#endif + +#ifndef AP_EFI_SERIAL_MS_ENABLED +#define AP_EFI_SERIAL_MS_ENABLED AP_EFI_BACKEND_DEFAULT_ENABLED +#endif + +#ifndef AP_EFI_SERIAL_LUTAN_ENABLED +#define AP_EFI_SERIAL_LUTAN_ENABLED AP_EFI_BACKEND_DEFAULT_ENABLED +#endif \ No newline at end of file