Path: blob/master/.github/workflows/test_environment.yml
6346 views
name: test environment setup1on:2schedule:3- cron: '0 0 * * 6' # every saturday at midnight4workflow_dispatch:5push:6paths:7- '.github/workflows/test_environment.yml'8- 'Tools/environment_install/**'910pull_request:11paths:12- '.github/workflows/test_environment.yml'13- 'Tools/environment_install/**'141516concurrency:17group: ci-${{github.workflow}}-${{ github.ref }}18cancel-in-progress: true1920jobs:21build:22runs-on: ubuntu-22.0423container:24image: ${{matrix.os}}:${{matrix.name}}25options: --privileged26strategy:27fail-fast: false # don't cancel if a job from the matrix fails28matrix:29include:30- os: ubuntu31name: focal32- os: ubuntu33name: jammy34- os: ubuntu35name: noble36- os: archlinux37name: latest38- os: debian39name: trixie40- os: debian41name: bookworm42- os: debian43name: bullseye44steps:45- name: Install Git46timeout-minutes: 3047env:48DEBIAN_FRONTEND: noninteractive49TZ: Europe/Paris50shell: 'script -q -e -c "bash {0}"'51run: |52case ${{matrix.os}} in53*"ubuntu"*)54apt-get update && apt-get install --no-install-recommends -qy \55lsb-release \56sudo \57software-properties-common58add-apt-repository ppa:git-core/ppa -y59apt-get update && apt-get install --no-install-recommends -qy git60;;61*"debian"*)62apt-get update && apt-get install --no-install-recommends -qy \63lsb-release \64sudo \65git \66ca-certificates67;;68*"archlinux"*)69pacman -Syu --noconfirm --needed git sudo70;;71esac7273# git checkout the PR74- uses: actions/checkout@v675with:76submodules: 'recursive'77- name: test install environment ${{matrix.os}}.${{matrix.name}}78timeout-minutes: 6079env:80DISABLE_MAVNATIVE: True81DEBIAN_FRONTEND: noninteractive82TZ: Europe/Paris83SKIP_AP_GIT_CHECK: 184shell: 'script -q -e -c "bash {0}"'85run: |86PATH="/github/home/.local/bin:$PATH"87ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone88sed -i 's/\$EUID/\$ID/' Tools/environment_install/install-prereqs-ubuntu.sh89sed -i 's/sudo usermod/\#sudo usermod/' Tools/environment_install/install-prereqs-ubuntu.sh90sed -i 's/sudo usermod/\#sudo usermod/' Tools/environment_install/install-prereqs-arch.sh91case ${{matrix.os}} in92*"ubuntu"*)93echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections94Tools/environment_install/install-prereqs-ubuntu.sh -qy95;;96*"debian"*)97Tools/environment_install/install-prereqs-ubuntu.sh -qy98;;99*"archlinux"*)100cp /etc/skel/.bashrc /root101cp /etc/skel/.bashrc /github/home102git config --global --add safe.directory ${GITHUB_WORKSPACE}103Tools/environment_install/install-prereqs-arch.sh -qy104;;105esac106107- name: test build SITL ${{matrix.os}}.${{matrix.name}}108env:109DISABLE_MAVNATIVE: True110DEBIAN_FRONTEND: noninteractive111TZ: Europe/Paris112shell: 'script -q -e -c "bash {0}"'113run: |114git config --global --add safe.directory ${GITHUB_WORKSPACE}115source ~/.bashrc116source $HOME/venv-ardupilot/bin/activate || true117git config --global --add safe.directory /__w/ardupilot/ardupilot118./waf configure119./waf rover120121- name: test build Chibios ${{matrix.os}}.${{matrix.name}}122if: matrix.os != 'alpine'123env:124DISABLE_MAVNATIVE: True125DEBIAN_FRONTEND: noninteractive126TZ: Europe/Paris127shell: 'script -q -e -c "bash {0}"'128run: |129git config --global --add safe.directory ${GITHUB_WORKSPACE}130source ~/.bashrc131source $HOME/venv-ardupilot/bin/activate || true132case ${{matrix.os}} in133*"archlinux"*)134export PATH=/opt/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH135export PATH=/__w/ardupilot/ardupilot/ardupilot/Tools/autotest:$PATH136;;137esac138git config --global --add safe.directory /__w/ardupilot/ardupilot139./waf configure --board CubeOrange140./waf plane141142build-alpine: # special case for alpine as it doesn't have bash by default143runs-on: ubuntu-22.04144container:145image: alpine:latest146options: --privileged147steps:148- name: Install Git149timeout-minutes: 30150env:151DEBIAN_FRONTEND: noninteractive152TZ: Europe/Paris153run: |154apk update && apk add --no-cache git155- uses: actions/checkout@v6156with:157submodules: 'recursive'158- name: test install environment alpine159timeout-minutes: 60160env:161DISABLE_MAVNATIVE: True162TZ: Europe/Paris163SKIP_AP_GIT_CHECK: 1164run: |165PATH="/github/home/.local/bin:$PATH"166Tools/environment_install/install-prereqs-alpine.sh167- name: test build SITL alpine168env:169DISABLE_MAVNATIVE: True170TZ: Europe/Paris171run: |172git config --global --add safe.directory ${GITHUB_WORKSPACE}173git config --global --add safe.directory /__w/ardupilot/ardupilot174./waf configure175./waf rover176177