diff --git a/.github/workflows/test_linux_sbc.yml b/.github/workflows/test_linux_sbc.yml new file mode 100644 index 0000000000..da28cb932a --- /dev/null +++ b/.github/workflows/test_linux_sbc.yml @@ -0,0 +1,66 @@ +name: test Linux SBC + +on: [push, pull_request] +# paths: +# - "*" +# - "!README.md" <-- don't rebuild on doc change + +jobs: + build: + runs-on: ubuntu-20.04 + container: khancyr/ardupilot-dev-${{ matrix.toolchain }}:latest + strategy: + fail-fast: false # don't cancel if a job from the matrix fails + matrix: + config: [ + navigator + ] + toolchain: [ + armhf, + ] + include: + - config: navigator + toolchain: armhf-musl + exclude: + - config: navigator + toolchain: armhf + + steps: + # git checkout the PR + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + # Put ccache into github cache for faster build + - name: Prepare ccache timestamp + id: ccache_cache_timestamp + run: | + NOW=$(date -u +"%F-%T") + echo "::set-output name=timestamp::${NOW}" + - name: ccache cache files + uses: actions/cache@v2 + 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 + - name: setup ccache + run: | + mkdir -p ~/.ccache + echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf + echo "compression = true" >> ~/.ccache/ccache.conf + echo "compression_level = 6" >> ~/.ccache/ccache.conf + echo "max_size = 400M" >> ~/.ccache/ccache.conf + ccache -s + ccache -z + - name: test ${{matrix.config}} ${{ matrix.toolchain }} + env: + CI_BUILD_TARGET: ${{matrix.config}} + shell: bash + run: | + if [[ ${{ matrix.toolchain }} = ",clang" ]]; then + export CC=clang-7 + export CXX=clang++-7 + fi + PATH="/github/home/.local/bin:$PATH" + Tools/scripts/build_ci.sh + ccache -s + ccache -z