mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-03-23 18:13:49 +08:00
Some checks failed
Build all targets / Scan for Board Targets (push) Has been cancelled
Build all targets / Build [${{ matrix.runner }}][${{ matrix.group }}] (push) Has been cancelled
Build all targets / Upload Artifacts (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_fmu-v5_default) (push) Has been cancelled
Checks / build (NO_NINJA_BUILD=1 px4_sitl_default) (push) Has been cancelled
Checks / build (check_format) (push) Has been cancelled
Checks / build (check_newlines) (push) Has been cancelled
Checks / build (module_documentation) (push) Has been cancelled
Checks / build (px4_fmu-v2_default stack_check) (push) Has been cancelled
Checks / build (px4_sitl_allyes) (push) Has been cancelled
Checks / build (shellcheck_all) (push) Has been cancelled
Checks / build (tests) (push) Has been cancelled
Checks / build (tests_coverage) (push) Has been cancelled
Checks / build (validate_module_configs) (push) Has been cancelled
Static Analysis / Clang-Tidy (push) Has been cancelled
MacOS build / build (px4_fmu-v5_default) (push) Has been cancelled
MacOS build / build (px4_sitl) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:22.04) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:24.04) (push) Has been cancelled
Container build / Set Tags and Variables (push) Has been cancelled
Container build / Build Container (amd64) (push) Has been cancelled
Container build / Build Container (arm64) (push) Has been cancelled
Container build / Deploy To Registry (push) Has been cancelled
Docs - Orchestrator / T1: Detect Changes (push) Has been cancelled
Docs - Orchestrator / T2: PR Metadata (push) Has been cancelled
Docs - Orchestrator / T2: Metadata Sync (push) Has been cancelled
Docs - Orchestrator / T2: Link Check (push) Has been cancelled
Docs - Orchestrator / T3: Build Site (push) Has been cancelled
Docs - Orchestrator / T4: Deploy (push) Has been cancelled
Docs - Crowdin - Upload Guide sources (en) / upload-to-crowdin (push) Has been cancelled
EKF Update Change Indicator / unit_tests (push) Has been cancelled
Failsafe Simulator Build / build (failsafe_web) (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v5x (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v6x (push) Has been cancelled
FLASH usage analysis / Publish Results (push) Has been cancelled
ITCM check / Checking nxp_mr-tropic (push) Has been cancelled
ITCM check / Checking nxp_tropic-community (push) Has been cancelled
ITCM check / Checking px4_fmu-v5x (push) Has been cancelled
ITCM check / Checking px4_fmu-v6xrt (push) Has been cancelled
MAVROS Mission Tests / build (push) Has been cancelled
MAVROS Offboard Tests / build (push) Has been cancelled
Nuttx Target with extra env config / build (px4_fmu-v5_default) (push) Has been cancelled
Python CI Checks / build (push) Has been cancelled
ROS Integration Tests / build (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:humble ubuntu:jammy]) (push) Has been cancelled
ROS Translation Node Tests / Build and test (map[ros_version:jazzy ubuntu:noble]) (push) Has been cancelled
SITL Tests / Testing PX4 iris (push) Has been cancelled
Sync ROS 2 messages to px4_msgs / sync_to_px4_msgs (push) Has been cancelled
* ci(ros): use matching branch for px4-ros2-interface-lib When running on release branches, the ROS integration tests now check if a matching branch exists in px4-ros2-interface-lib and clone it instead of always using main. This prevents build failures caused by uORB message divergence between main and release branches. Fixes https://github.com/Auterion/px4-ros2-interface-lib/issues/184 Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci(ros): dispatch release branch creation to px4-ros2-interface-lib Add a standalone workflow triggered by the create event that fires a repository_dispatch to Auterion/px4-ros2-interface-lib when a release/X.Y branch is created. Also supports manual workflow_dispatch. Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci(ros): add empty permissions block to dispatch workflow Fixes code scanning alert about missing GITHUB_TOKEN permissions. This workflow only uses a PAT secret, not GITHUB_TOKEN, so no permissions are needed. Signed-off-by: Ramon Roche <mrpollo@gmail.com> --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com>
143 lines
5.3 KiB
YAML
143 lines
5.3 KiB
YAML
# NOTE: this workflow is now running on Dronecode / PX4 AWS account.
|
|
# - If you want to keep the tests running in GitHub Actions you need to uncomment the "runs-on: ubuntu-latest" lines
|
|
# and comment the "runs-on: [runs-on,runner=..." lines.
|
|
# - If you would like to duplicate this setup try setting up "RunsOn" on your own AWS account try https://runs-on.com
|
|
|
|
name: ROS Integration Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'main'
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
pull_request:
|
|
branches:
|
|
- '**'
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
|
|
container:
|
|
image: px4io/px4-dev-ros2-galactic:2021-09-08
|
|
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Git Ownership Workaround
|
|
run: git config --system --add safe.directory '*'
|
|
|
|
- name: Update ROS Keys
|
|
run: |
|
|
sudo rm /etc/apt/sources.list.d/ros2.list && \
|
|
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg && \
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
|
|
|
|
- name: Install gazebo
|
|
run: |
|
|
apt update && apt install -y gazebo11 libgazebo11-dev gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly libgstreamer-plugins-base1.0-dev
|
|
|
|
- name: Prepare ccache timestamp
|
|
id: ccache_cache_timestamp
|
|
shell: cmake -P {0}
|
|
run: |
|
|
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
|
|
message("::set-output name=timestamp::${current_date}")
|
|
- name: ccache cache files
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.ccache
|
|
key: ros_integration_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
|
restore-keys: ros_integration_tests-${{matrix.config.build_type}}-ccache-
|
|
- 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 = 300M" >> ~/.ccache/ccache.conf
|
|
echo "hash_dir = false" >> ~/.ccache/ccache.conf
|
|
ccache -s
|
|
ccache -z
|
|
|
|
- name: Get and build micro-xrce-dds-agent
|
|
run: |
|
|
cd /opt
|
|
git clone --recursive https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
|
|
cd Micro-XRCE-DDS-Agent
|
|
git checkout v2.2.1 # recent versions require cmake 3.22, but px4-dev-ros2-galactic:2021-09-08 is on 3.16
|
|
sed -i 's/_fastdds_tag 2.8.x/_fastdds_tag 2.8.2/g' CMakeLists.txt
|
|
mkdir build
|
|
cd build
|
|
cmake ..
|
|
make -j2
|
|
- name: ccache post-run micro-xrce-dds-agent
|
|
run: ccache -s
|
|
|
|
- name: Get and build the ros2 interface library
|
|
shell: bash
|
|
run: |
|
|
PX4_DIR="$(pwd)"
|
|
. /opt/ros/galactic/setup.bash
|
|
mkdir -p /opt/px4_ws/src
|
|
cd /opt/px4_ws/src
|
|
BRANCH="${GITHUB_HEAD_REF:-$GITHUB_REF_NAME}"
|
|
REPO_URL="https://github.com/Auterion/px4-ros2-interface-lib.git"
|
|
if git ls-remote --heads "$REPO_URL" "$BRANCH" | grep -q "$BRANCH"; then
|
|
echo "Cloning px4-ros2-interface-lib with matching branch: $BRANCH"
|
|
git clone --recursive --branch "$BRANCH" "$REPO_URL"
|
|
else
|
|
echo "Branch '$BRANCH' not found in px4-ros2-interface-lib, using default (main)"
|
|
git clone --recursive "$REPO_URL"
|
|
fi
|
|
# Ignore python packages due to compilation issue (can be enabled when updating ROS)
|
|
touch px4-ros2-interface-lib/px4_ros2_py/COLCON_IGNORE || true
|
|
touch px4-ros2-interface-lib/examples/python/COLCON_IGNORE || true
|
|
cd ..
|
|
# Copy messages to ROS workspace
|
|
"${PX4_DIR}/Tools/copy_to_ros_ws.sh" "$(pwd)"
|
|
rm -rf src/translation_node src/px4_msgs_old
|
|
colcon build --symlink-install
|
|
- name: ccache post-run ros workspace
|
|
run: ccache -s
|
|
|
|
- name: Build PX4
|
|
run: make px4_sitl_default
|
|
- name: ccache post-run px4/firmware
|
|
run: ccache -s
|
|
- name: Build SITL Gazebo
|
|
run: make px4_sitl_default sitl_gazebo-classic
|
|
- name: ccache post-run sitl_gazebo-classic
|
|
run: ccache -s
|
|
|
|
- name: Core dump settings
|
|
run: |
|
|
ulimit -c unlimited
|
|
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
|
|
|
|
- name: Run tests
|
|
shell: bash
|
|
run: |
|
|
. /opt/px4_ws/install/setup.bash
|
|
/opt/Micro-XRCE-DDS-Agent/build/MicroXRCEAgent udp4 localhost -p 8888 -v 0 &
|
|
test/ros_test_runner.py --verbose --model iris --upload --force-color
|
|
timeout-minutes: 45
|
|
|
|
- name: Upload failed logs
|
|
if: failure()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: failed-logs.zip
|
|
path: |
|
|
logs/**/**/**/*.log
|
|
logs/**/**/**/*.ulg
|
|
build/px4_sitl_default/tmp_ros_tests/rootfs/log/**/*.ulg
|