mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-18 06:38:29 -04:00
.github: reduce duplicate for GCC and Clang build
This commit is contained in:
parent
d1983b0b77
commit
f40a5b978e
77
.github/workflows/test_sitl_copter.yml
vendored
77
.github/workflows/test_sitl_copter.yml
vendored
@ -6,9 +6,16 @@ on: [push, pull_request]
|
||||
# - "!README.md" <-- don't rebuild on doc change
|
||||
|
||||
jobs:
|
||||
build-gcc:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-base:latest
|
||||
container: khancyr/ardupilot-dev-${{ matrix.toolchain }}:latest
|
||||
strategy:
|
||||
fail-fast: false # don't cancel if a job from the matrix fails
|
||||
matrix:
|
||||
toolchain: [
|
||||
base, # GCC
|
||||
clang,
|
||||
]
|
||||
steps:
|
||||
# git checkout the PR
|
||||
- uses: actions/checkout@v2
|
||||
@ -24,8 +31,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -35,57 +42,21 @@ jobs:
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
- name: build copter
|
||||
- name: build copter ${{ matrix.toolchain }}
|
||||
shell: bash
|
||||
run: |
|
||||
if [[ ${{ matrix.toolchain }} = "clang" ]]; then
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
fi
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/arducopter
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
build-clang:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-clang:latest
|
||||
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-clang-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-clang- # 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: build copter
|
||||
shell: bash
|
||||
run: |
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl --board sitl
|
||||
./waf build --target bin/arducopter
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
autotest:
|
||||
needs: build-gcc # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build
|
||||
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: khancyr/ardupilot-dev-base:latest
|
||||
strategy:
|
||||
@ -116,8 +87,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -151,7 +122,7 @@ jobs:
|
||||
|
||||
|
||||
build-gcc-heli:
|
||||
needs: build-gcc # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build
|
||||
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: khancyr/ardupilot-dev-base:latest
|
||||
steps:
|
||||
@ -169,8 +140,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -215,8 +186,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
|
67
.github/workflows/test_sitl_plane.yml
vendored
67
.github/workflows/test_sitl_plane.yml
vendored
@ -6,9 +6,16 @@ on: [push, pull_request]
|
||||
# - "!README.md" <-- don't rebuild on doc change
|
||||
|
||||
jobs:
|
||||
build-gcc:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-base:latest
|
||||
container: khancyr/ardupilot-dev-${{ matrix.toolchain }}:latest
|
||||
strategy:
|
||||
fail-fast: false # don't cancel if a job from the matrix fails
|
||||
matrix:
|
||||
toolchain: [
|
||||
base, # GCC
|
||||
clang,
|
||||
]
|
||||
steps:
|
||||
# git checkout the PR
|
||||
- uses: actions/checkout@v2
|
||||
@ -24,8 +31,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -35,49 +42,13 @@ jobs:
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
- name: build plane gcc
|
||||
- name: build plane ${{ matrix.toolchain }}
|
||||
shell: bash
|
||||
run: |
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/arduplane
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
build-clang:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-clang:latest
|
||||
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-clang-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-clang- # 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: build plane clang
|
||||
shell: bash
|
||||
run: |
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
if [[ ${{ matrix.toolchain }} = "clang" ]]; then
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
fi
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/arduplane
|
||||
@ -85,7 +56,7 @@ jobs:
|
||||
ccache -z
|
||||
|
||||
autotest:
|
||||
needs: build-gcc # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build
|
||||
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: khancyr/ardupilot-dev-base:latest
|
||||
strategy:
|
||||
@ -111,8 +82,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
|
67
.github/workflows/test_sitl_rover.yml
vendored
67
.github/workflows/test_sitl_rover.yml
vendored
@ -6,9 +6,16 @@ on: [push, pull_request]
|
||||
# - "!README.md" <-- don't rebuild on doc change
|
||||
|
||||
jobs:
|
||||
build-gcc:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-base:latest
|
||||
container: khancyr/ardupilot-dev-${{ matrix.toolchain }}:latest
|
||||
strategy:
|
||||
fail-fast: false # don't cancel if a job from the matrix fails
|
||||
matrix:
|
||||
toolchain: [
|
||||
base, # GCC
|
||||
clang,
|
||||
]
|
||||
steps:
|
||||
# git checkout the PR
|
||||
- uses: actions/checkout@v2
|
||||
@ -24,8 +31,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -35,49 +42,13 @@ jobs:
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
- name: build rover gcc
|
||||
- name: build rover ${{ matrix.toolchain }}
|
||||
shell: bash
|
||||
run: |
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/ardurover
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
build-clang:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-clang:latest
|
||||
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-clang-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-clang- # 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: build rover clang
|
||||
shell: bash
|
||||
run: |
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
if [[ ${{ matrix.toolchain }} = "clang" ]]; then
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
fi
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/ardurover
|
||||
@ -85,7 +56,7 @@ jobs:
|
||||
ccache -z
|
||||
|
||||
autotest:
|
||||
needs: build-gcc # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build
|
||||
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: khancyr/ardupilot-dev-base:latest
|
||||
strategy:
|
||||
@ -111,8 +82,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
|
67
.github/workflows/test_sitl_sub.yml
vendored
67
.github/workflows/test_sitl_sub.yml
vendored
@ -6,9 +6,16 @@ on: [push, pull_request]
|
||||
# - "!README.md" <-- don't rebuild on doc change
|
||||
|
||||
jobs:
|
||||
build-gcc:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-base:latest
|
||||
container: khancyr/ardupilot-dev-${{ matrix.toolchain }}:latest
|
||||
strategy:
|
||||
fail-fast: false # don't cancel if a job from the matrix fails
|
||||
matrix:
|
||||
toolchain: [
|
||||
base, # GCC
|
||||
clang,
|
||||
]
|
||||
steps:
|
||||
# git checkout the PR
|
||||
- uses: actions/checkout@v2
|
||||
@ -24,8 +31,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -35,49 +42,13 @@ jobs:
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
- name: build sub gcc
|
||||
- name: build sub ${{ matrix.toolchain }}
|
||||
shell: bash
|
||||
run: |
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/ardusub
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
build-clang:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-clang:latest
|
||||
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-clang-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-clang- # 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: build sub clang
|
||||
shell: bash
|
||||
run: |
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
if [[ ${{ matrix.toolchain }} = "clang" ]]; then
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
fi
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/ardusub
|
||||
@ -85,7 +56,7 @@ jobs:
|
||||
ccache -z
|
||||
|
||||
autotest:
|
||||
needs: build-gcc # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build
|
||||
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: khancyr/ardupilot-dev-base:latest
|
||||
strategy:
|
||||
@ -110,8 +81,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
|
67
.github/workflows/test_sitl_tracker.yml
vendored
67
.github/workflows/test_sitl_tracker.yml
vendored
@ -6,9 +6,16 @@ on: [push, pull_request]
|
||||
# - "!README.md" <-- don't rebuild on doc change
|
||||
|
||||
jobs:
|
||||
build-gcc:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-base:latest
|
||||
container: khancyr/ardupilot-dev-${{ matrix.toolchain }}:latest
|
||||
strategy:
|
||||
fail-fast: false # don't cancel if a job from the matrix fails
|
||||
matrix:
|
||||
toolchain: [
|
||||
base, # GCC
|
||||
clang,
|
||||
]
|
||||
steps:
|
||||
# git checkout the PR
|
||||
- uses: actions/checkout@v2
|
||||
@ -24,8 +31,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -35,49 +42,13 @@ jobs:
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
- name: build tracker gcc
|
||||
- name: build tracker ${{ matrix.toolchain }}
|
||||
shell: bash
|
||||
run: |
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/antennatracker
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
build-clang:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-clang:latest
|
||||
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-clang-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-clang- # 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: build antennatracker clang
|
||||
shell: bash
|
||||
run: |
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
if [[ ${{ matrix.toolchain }} = "clang" ]]; then
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
fi
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
./waf configure --board sitl
|
||||
./waf build --target bin/antennatracker
|
||||
@ -85,7 +56,7 @@ jobs:
|
||||
ccache -z
|
||||
|
||||
autotest:
|
||||
needs: build-gcc # don't try to launch the tests matrix if it doesn't build first, profit from caching for fast build
|
||||
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: khancyr/ardupilot-dev-base:latest
|
||||
strategy:
|
||||
@ -110,8 +81,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-base-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-base- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
|
73
.github/workflows/test_unit_tests.yml
vendored
73
.github/workflows/test_unit_tests.yml
vendored
@ -6,11 +6,16 @@ on: [push, pull_request]
|
||||
# - "!README.md" <-- don't rebuild on doc change
|
||||
|
||||
jobs:
|
||||
build-gcc:
|
||||
build:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-base:latest
|
||||
container: khancyr/ardupilot-dev-${{ matrix.toolchain }}:latest
|
||||
strategy:
|
||||
fail-fast: false # don't cancel if a job from the matrix fails
|
||||
matrix:
|
||||
toolchain: [
|
||||
base, # GCC
|
||||
clang,
|
||||
]
|
||||
config: [
|
||||
unit-tests
|
||||
]
|
||||
@ -29,8 +34,8 @@ jobs:
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: ${{github.workflow}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache- # restore ccache from either previous build on this branch or on master
|
||||
key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
@ -40,69 +45,21 @@ jobs:
|
||||
echo "max_size = 400M" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
- name: test ${{matrix.config}} gcc
|
||||
- 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
|
||||
|
||||
- name: Archive buildlog artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: buildlogs-for-gcc-${{matrix.config}}
|
||||
name: buildlogs-for-${{ matrix.toolchain }}-${{matrix.config}}
|
||||
path: /tmp/buildlogs
|
||||
retention-days: 14
|
||||
|
||||
build-clang:
|
||||
runs-on: ubuntu-20.04
|
||||
container: khancyr/ardupilot-dev-clang:latest
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
unit-tests
|
||||
]
|
||||
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-clang-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: ${{github.workflow}}-ccache-clang- # 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}} clang
|
||||
env:
|
||||
CI_BUILD_TARGET: ${{matrix.config}}
|
||||
shell: bash
|
||||
run: |
|
||||
export CC=clang-7
|
||||
export CXX=clang++-7
|
||||
PATH="/github/home/.local/bin:$PATH"
|
||||
Tools/scripts/build_ci.sh
|
||||
|
||||
- name: Archive buildlog artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: buildlogs-for-clang-${{matrix.config}}
|
||||
path: /tmp/buildlogs
|
||||
retention-days: 14
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user