ci(workflows): bump all action versions to latest majors #7331
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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=8cpu-linux-x64,image=ubuntu24-full-x64,"run-id=${{ github.run_id }}",spot=false,extras=s3-cache] | |
| container: | |
| image: px4io/px4-dev-ros2-galactic:2021-09-08 | |
| options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined | |
| env: | |
| PX4_SBOM_DISABLE: 1 | |
| steps: | |
| - uses: ./.github/actions/setup-px4-checkout | |
| - 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 | |
| - uses: ./.github/actions/setup-ccache | |
| id: ccache | |
| with: | |
| cache-key-prefix: ccache-ros-integration | |
| max-size: 400M | |
| - name: Cache - Restore Micro-XRCE-DDS Agent | |
| id: cache-xrce-agent | |
| uses: actions/cache@v5 | |
| with: | |
| path: /opt/Micro-XRCE-DDS-Agent | |
| key: xrce-agent-v2.2.1-fastdds-2.8.2-galactic-2021-09-08 | |
| - name: Build - Micro-XRCE-DDS Agent (v2.2.1) | |
| if: steps.cache-xrce-agent.outputs.cache-hit != 'true' | |
| 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: Cache - Restore PX4 ROS 2 Interface Library Workspace | |
| id: cache-px4-ros2-ws | |
| uses: actions/cache@v5 | |
| with: | |
| path: /opt/px4_ws | |
| # Bump 'v1' when the cached workspace layout changes in a way | |
| # that is not captured by the message/service hash below. | |
| key: px4-ros2-ws-v1-galactic-2021-09-08-${{ hashFiles('msg/*.msg', 'msg/versioned/*.msg', 'srv/*.srv') }} | |
| - name: Build - PX4 ROS 2 Interface Library | |
| if: steps.cache-px4-ros2-ws.outputs.cache-hit != 'true' | |
| shell: bash | |
| run: | | |
| PX4_DIR="$(pwd)" | |
| . /opt/ros/galactic/setup.bash | |
| mkdir -p /opt/px4_ws/src | |
| cd /opt/px4_ws/src | |
| # On a PR, target the branch we're merging into (main or release/X.Y). | |
| # On a direct push, fall back to the branch we're running on. | |
| BRANCH="${GITHUB_BASE_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 | |
| - uses: ./.github/actions/build-gazebo-sitl | |
| - 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 --force-color | |
| timeout-minutes: 45 | |
| - uses: ./.github/actions/save-ccache | |
| if: always() | |
| with: | |
| cache-primary-key: ${{ steps.ccache.outputs.cache-primary-key }} | |
| - name: Upload failed logs | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: failed-logs.zip | |
| path: | | |
| logs/**/**/**/*.log | |
| logs/**/**/**/*.ulg | |
| build/px4_sitl_default/tmp_ros_tests/rootfs/log/**/*.ulg |