Build & test for 290/merge on e284a453a256d0d07ab5be1146935cf77b87a9a2 #159
Workflow file for this run
This file contains 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
name: build-and-test | |
run-name: Build & test for ${{ github.ref_name }} on ${{ github.sha }} | |
on: | |
push: | |
branches: | |
- 'main' | |
- 'develop' | |
pull_request: | |
types: [opened, synchronize, reopened] | |
# Cancel previous runs if new changes on PR/branch | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
###### PREPARE WORKFLOW ###### | |
checkout-repository: | |
runs-on: self-hosted | |
steps: | |
- name: Checkout repository code | |
uses: actions/checkout@v3 | |
with: | |
clean: false | |
- name: Clean repository excluding taped test data | |
run: git clean -ffdx -e external/taped_test_data | |
- name: Import private extensions | |
run: vcs import < extensions.repos | |
- name: Install taped test dependencies | |
run: ./setup.py --install-taped-test-deps | |
load-env: | |
uses: ./.github/workflows/load-env-subworkflow.yml | |
###### BUILD USING RGL DOCKER ###### | |
build-core: | |
needs: [checkout-repository, load-env] | |
uses: ./.github/workflows/build-subworkflow.yml | |
with: | |
build-command: ./setup.py --build-dir build-core | |
self-hosted-user-id: ${{ needs.load-env.outputs.user-id }} | |
optix-install-dir: ${{ needs.load-env.outputs.optix-install-dir }} | |
docker-image: localhost:5000/rgl:latest | |
build-pcl: | |
needs: [checkout-repository, load-env] | |
uses: ./.github/workflows/build-subworkflow.yml | |
with: | |
build-command: './setup.py --with-pcl --build-taped-test --build-dir build-pcl' | |
self-hosted-user-id: ${{ needs.load-env.outputs.user-id }} | |
optix-install-dir: ${{ needs.load-env.outputs.optix-install-dir }} | |
docker-image: localhost:5000/rgl:latest | |
build-ros2: | |
needs: [ checkout-repository, load-env ] | |
uses: ./.github/workflows/build-subworkflow.yml | |
with: | |
build-command: ' | |
source /opt/ros/humble/setup.bash && | |
./setup.py --with-ros2-standalone --build-dir build-ros2' | |
self-hosted-user-id: ${{ needs.load-env.outputs.user-id }} | |
optix-install-dir: ${{ needs.load-env.outputs.optix-install-dir }} | |
docker-image: localhost:5000/rgl:latest | |
build-udp: | |
needs: [ checkout-repository, load-env ] | |
uses: ./.github/workflows/build-subworkflow.yml | |
with: | |
build-command: './setup.py --with-udp --build-dir build-udp' | |
self-hosted-user-id: ${{ needs.load-env.outputs.user-id }} | |
optix-install-dir: ${{ needs.load-env.outputs.optix-install-dir }} | |
docker-image: localhost:5000/rgl:latest | |
build-snow: | |
needs: [ checkout-repository, load-env ] | |
uses: ./.github/workflows/build-subworkflow.yml | |
with: | |
build-command: './setup.py --with-snow --build-dir build-snow' | |
self-hosted-user-id: ${{ needs.load-env.outputs.user-id }} | |
optix-install-dir: ${{ needs.load-env.outputs.optix-install-dir }} | |
docker-image: localhost:5000/rgl:latest | |
build-all: | |
needs: [ checkout-repository, load-env ] | |
uses: ./.github/workflows/build-subworkflow.yml | |
with: | |
build-command: ' | |
source /opt/ros/humble/setup.bash && | |
./setup.py --with-pcl --with-ros2-standalone --with-udp --with-snow --build-taped-test --build-dir build-all' | |
self-hosted-user-id: ${{ needs.load-env.outputs.user-id }} | |
optix-install-dir: ${{ needs.load-env.outputs.optix-install-dir }} | |
docker-image: localhost:5000/rgl:latest | |
###### TEST WITH RGL DOCKER IMAGE ###### | |
test-core-dev: | |
needs: [build-core] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: 'cd build-core/test && ./RobotecGPULidar_test' | |
docker-image: localhost:5000/rgl:latest | |
test-pcl-dev: | |
needs: [ build-pcl ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: ' | |
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/taped_test_data && | |
cd build-pcl/test && ./RobotecGPULidar_test && ./taped_test/RobotecGPULidar_taped_test' | |
docker-image: localhost:5000/rgl:latest | |
test-ros2-dev: | |
needs: [ build-ros2 ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
# Source ROS2 and radar_msgs, standalone build is tested in prod environment | |
# Run tests twice, each for different RMW implementation | |
test-command: ' | |
source /opt/ros/humble/setup.bash && | |
source /rgldep/radar_msgs/install/setup.bash && | |
cd build-ros2/test && | |
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && | |
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test' | |
docker-image: localhost:5000/rgl:latest | |
test-udp-dev: | |
needs: [ build-udp ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: 'cd build-udp/test && ./RobotecGPULidar_test' | |
docker-image: localhost:5000/rgl:latest | |
test-snow-dev: | |
needs: [ build-snow ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: 'cd build-snow/test && ./RobotecGPULidar_test' | |
docker-image: localhost:5000/rgl:latest | |
test-all-dev: | |
needs: [ build-all ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
# Source ROS2 and radar_msgs, standalone build is tested in prod environment | |
# Set `RGL_TEST_VLP16_CALIB_FILE` for UDP-ROS2 integration test | |
# Run tests twice, each for different RMW implementation | |
test-command: ' | |
source /opt/ros/humble/setup.bash && | |
source /rgldep/radar_msgs/install/setup.bash && | |
export RGL_TEST_VLP16_CALIB_FILE=$(pwd)/extensions/udp/test/resources/Ros2Vlp16Calib.yaml && | |
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/taped_test_data && | |
cd build-all/test && | |
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && ./taped_test/RobotecGPULidar_taped_test && | |
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test && ./taped_test/RobotecGPULidar_taped_test' | |
docker-image: localhost:5000/rgl:latest | |
###### TEST WITH CLEAN UBUNTU DOCKER IMAGE ###### | |
test-core-prod: | |
needs: [build-core] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: 'cd build-core/test && ./RobotecGPULidar_test' | |
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04 | |
test-pcl-prod: | |
needs: [ build-pcl ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
# Additionally, install PCL extension dependent libraries for runtime | |
test-command: ' | |
apt update && apt install -y libxcursor1 libgl1 && | |
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/taped_test_data && | |
cd build-pcl/test && ./RobotecGPULidar_test && ./taped_test/RobotecGPULidar_taped_test' | |
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04 | |
test-ros2-prod: | |
needs: [ build-ros2 ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
# Copy ROS2 libraries to be visible for libRobotecGPULidar.so | |
# Run tests twice, each for different RMW implementation | |
test-command: ' | |
cd build-ros2/test && | |
cp -r ../ros2_standalone/*.so* ../ && | |
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && | |
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test' | |
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04 | |
test-udp-prod: | |
needs: [ build-udp ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: 'cd build-udp/test && ./RobotecGPULidar_test' | |
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04 | |
test-snow-prod: | |
needs: [ build-snow ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: 'cd build-snow/test && ./RobotecGPULidar_test' | |
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04 | |
test-all-prod: | |
needs: [ build-all ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
# Install PCL extension dependent libraries for runtime | |
# Copy ROS2 libraries to be visible for libRobotecGPULidar.so | |
# Run tests twice, each for different RMW implementation | |
test-command: ' | |
apt update && apt install -y libxcursor1 libgl1 && | |
export RGL_TAPED_TEST_DATA_DIR=$(pwd)/external/taped_test_data && | |
cd build-all/test && | |
cp -r ../ros2_standalone/*.so* ../ && | |
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && ./taped_test/RobotecGPULidar_taped_test && | |
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test && ./taped_test/RobotecGPULidar_taped_test' | |
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04 |