ci: build targets using px4-dev container

This commit is contained in:
Ramon Roche
2025-02-25 21:21:59 -08:00
parent 0cb7b8b525
commit d60d760eb4
3 changed files with 37 additions and 25 deletions
+13 -1
View File
@@ -71,6 +71,11 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Install ccache
run: |
apt-get --quiet -y update && DEBIAN_FRONTEND=noninteractive apt-get --quiet -y install \
ccache
- name: Git ownership workaround - name: Git ownership workaround
run: git config --system --add safe.directory '*' run: git config --system --add safe.directory '*'
@@ -92,9 +97,16 @@ jobs:
ccache -s ccache -s
ccache -z ccache -z
- name: Missing dependencies for ${{ matrix.arch }}
if: contains(fromJSON('["aarch64", "armhf"]'), matrix.arch)
run: |
apt-get --quiet -y update && DEBIAN_FRONTEND=noninteractive apt-get --quiet -y install \
g++-aarch64-linux-gnu \
g++-arm-linux-gnueabihf
- name: Building [${{ matrix.group }}] - name: Building [${{ matrix.group }}]
run: | run: |
./Tools/ci/build_all_runner.sh ${{matrix.targets}} ./Tools/ci/build_all_runner.sh ${{matrix.targets}} ${{matrix.arch}}
- name: Arrange Build Artifacts - name: Arrange Build Artifacts
run: | run: |
+2 -5
View File
@@ -87,20 +87,17 @@ def process_target(px4board_file, target_name):
if platform not in excluded_platforms: if platform not in excluded_platforms:
# get the container based on the platform and toolchain # get the container based on the platform and toolchain
container = 'ghcr.io/px4/px4-dev:main'
if platform == 'posix': if platform == 'posix':
container = 'px4io/px4-dev-base-focal:2021-09-08'
group = 'base' group = 'base'
if toolchain: if toolchain:
if toolchain.startswith('aarch64'): if toolchain.startswith('aarch64'):
container = 'px4io/px4-dev-aarch64:2022-08-12'
group = 'aarch64' group = 'aarch64'
elif toolchain == 'arm-linux-gnueabihf': elif toolchain == 'arm-linux-gnueabihf':
container = 'px4io/px4-dev-armhf:2023-06-26'
group = 'armhf' group = 'armhf'
else: else:
if verbose: print(f'unmatched toolchain: {toolchain}') if verbose: print(f'unmatched toolchain: {toolchain}')
elif platform == 'nuttx': elif platform == 'nuttx':
container = 'px4io/px4-dev-nuttx-focal:2022-08-12'
group = 'nuttx' group = 'nuttx'
else: else:
if verbose: print(f'unmatched platform: {platform}') if verbose: print(f'unmatched platform: {platform}')
@@ -124,7 +121,7 @@ if(verbose):
# - Events # - Events
metadata_targets = ['airframe_metadata', 'parameters_metadata', 'extract_events'] metadata_targets = ['airframe_metadata', 'parameters_metadata', 'extract_events']
grouped_targets['base'] = {} grouped_targets['base'] = {}
grouped_targets['base']['container'] = 'px4io/px4-dev-base-focal:2021-09-08' grouped_targets['base']['container'] = 'ghcr.io/px4/px4-dev:main'
grouped_targets['base']['manufacturers'] = {} grouped_targets['base']['manufacturers'] = {}
grouped_targets['base']['manufacturers']['px4'] = [] grouped_targets['base']['manufacturers']['px4'] = []
grouped_targets['base']['manufacturers']['px4'] += metadata_targets grouped_targets['base']['manufacturers']['px4'] += metadata_targets
+22 -19
View File
@@ -4,8 +4,9 @@ mkdir artifacts
cp **/**/*.px4 artifacts/ cp **/**/*.px4 artifacts/
cp **/**/*.elf artifacts/ cp **/**/*.elf artifacts/
for build_dir_path in build/*/ ; do for build_dir_path in build/*/ ; do
build_dir_path=${build_dir_path::${#build_dir_path}-1}
build_dir=${build_dir_path#*/} build_dir=${build_dir_path#*/}
build_dir=${build_dir::${#build_dir}-1} target_name=$build_dir
mkdir artifacts/$build_dir mkdir artifacts/$build_dir
find artifacts/ -maxdepth 1 -type f -name "*$build_dir*" find artifacts/ -maxdepth 1 -type f -name "*$build_dir*"
# Airframe # Airframe
@@ -26,21 +27,23 @@ for build_dir_path in build/*/ ; do
echo "----------" echo "----------"
done done
# general metadata if [ -d artifacts/px4_sitl_default ]; then
mkdir artifacts/_general/ # general metadata
cp artifacts/px4_sitl_default/airframes.xml artifacts/_general/ mkdir artifacts/_general/
# Airframe cp artifacts/px4_sitl_default/airframes.xml artifacts/_general/
cp artifacts/px4_sitl_default/airframes.xml artifacts/_general/ # Airframe
# Parameters cp artifacts/px4_sitl_default/airframes.xml artifacts/_general/
cp artifacts/px4_sitl_default/parameters.xml artifacts/_general/ # Parameters
cp artifacts/px4_sitl_default/parameters.json artifacts/_general/ cp artifacts/px4_sitl_default/parameters.xml artifacts/_general/
cp artifacts/px4_sitl_default/parameters.json.xz artifacts/_general/ cp artifacts/px4_sitl_default/parameters.json artifacts/_general/
# Actuators cp artifacts/px4_sitl_default/parameters.json.xz artifacts/_general/
cp artifacts/px4_sitl_default/actuators.json artifacts/_general/ # Actuators
cp artifacts/px4_sitl_default/actuators.json.xz artifacts/_general/ cp artifacts/px4_sitl_default/actuators.json artifacts/_general/
# Events cp artifacts/px4_sitl_default/actuators.json.xz artifacts/_general/
cp artifacts/px4_sitl_default/events/all_events.json.xz artifacts/_general/ # Events
# ROS 2 msgs cp artifacts/px4_sitl_default/events/all_events.json.xz artifacts/_general/
cp artifacts/px4_sitl_default/events/all_events.json.xz artifacts/_general/ # ROS 2 msgs
# Module Docs cp artifacts/px4_sitl_default/events/all_events.json.xz artifacts/_general/
ls -la artifacts/_general/ # Module Docs
ls -la artifacts/_general/
fi