Build & test for 294/merge on 8890bf0d358b4df112710d5b14f8438db0fcaa61 #169
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 RGL blobs repo | |
run: git clean -ffdx -e external/rgl_blobs | |
- name: Import private extensions | |
run: vcs import < extensions.repos | |
- name: Install taped test runtime dependencies | |
run: ./setup.py --fetch-rgl-blobs | |
load-env: | |
uses: ./.github/workflows/load-env-subworkflow.yml | |
###### BUILD USING RGL DOCKER ###### | |
build-core: | |
needs: [checkout-repository, load-env] | |
runs-on: self-hosted | |
steps: | |
- run: ' | |
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }} | |
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1 | |
--build-arg BUILD_CMD="./setup.py" | |
--target=exporter --output=bin-core .' | |
build-pcl: | |
needs: [checkout-repository, load-env] | |
runs-on: self-hosted | |
steps: | |
- run: ' | |
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }} | |
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1 | |
--build-arg BUILD_CMD="./setup.py --with-pcl --build-taped-test" | |
--target=exporter --output=bin-pcl .' | |
build-ros2: | |
needs: [ checkout-repository, load-env ] | |
runs-on: self-hosted | |
steps: | |
- run: ' | |
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }} | |
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1 | |
--build-arg BUILD_CMD="source /opt/ros/humble/setup.bash && ./setup.py --with-ros2-standalone" | |
--target=exporter --output=bin-ros2 .' | |
build-udp: | |
needs: [ checkout-repository, load-env ] | |
runs-on: self-hosted | |
steps: | |
- run: ' | |
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }} | |
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1 | |
--build-arg BUILD_CMD="./setup.py --with-udp" | |
--target=exporter --output=bin-udp .' | |
build-snow: | |
needs: [ checkout-repository, load-env ] | |
runs-on: self-hosted | |
steps: | |
- run: ' | |
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }} | |
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1 | |
--build-arg BUILD_CMD="./setup.py --with-snow" | |
--target=exporter --output=bin-snow .' | |
build-all: | |
needs: [ checkout-repository, load-env ] | |
runs-on: self-hosted | |
steps: | |
- run: ' | |
docker build --build-context optix=${{ needs.load-env.outputs.optix-install-dir }} | |
--build-arg WITH_PCL=1 --build-arg WITH_ROS2=1 | |
--build-arg BUILD_CMD="./setup.py --with-pcl --with-ros2-standalone --with-udp --with-snow --build-taped-test" | |
--target=exporter --output=bin-all .' | |
####### TEST WITH RGL DOCKER IMAGE ###### | |
test-core-dev: | |
needs: [build-core] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: ' | |
cd bin-core && mkdir test-dev && cd test-dev && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so . && | |
./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/rgl_blobs && | |
cd bin-pcl && mkdir test-dev && cd test-dev && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so ../test/taped_test/RobotecGPULidar_taped_test . && | |
./RobotecGPULidar_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 bin-ros2 && mkdir test-dev && cd test-dev && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so . && | |
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 bin-udp && mkdir test-dev && cd test-dev && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so . && | |
./RobotecGPULidar_test' | |
docker-image: localhost:5000/rgl:latest | |
test-snow-dev: | |
needs: [ build-snow ] | |
uses: ./.github/workflows/test-subworkflow.yml | |
with: | |
test-command: ' | |
cd bin-snow && mkdir test-dev && cd test-dev && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so . && | |
./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/rgl_blobs && | |
cd bin-all && mkdir test-dev && cd test-dev && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so ../test/taped_test/RobotecGPULidar_taped_test . && | |
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test && | |
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_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 bin-core && mkdir test-prod && cd test-prod && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so . && | |
./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/rgl_blobs && | |
cd bin-pcl && mkdir test-prod && cd test-prod && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so ../test/taped_test/RobotecGPULidar_taped_test . && | |
./RobotecGPULidar_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 bin-ros2 && mkdir test-prod && cd test-prod && | |
cp -r ../test/RobotecGPULidar_test ../libRobotecGPULidar.so ../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 bin-udp && mkdir test-prod && cd test-prod && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so . && | |
./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 bin-snow && mkdir test-prod && cd test-prod && | |
cp ../test/RobotecGPULidar_test ../libRobotecGPULidar.so . && | |
./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/rgl_blobs && | |
cd bin-all && mkdir test-prod && cd test-prod && | |
cp -r ../test/RobotecGPULidar_test ../libRobotecGPULidar.so ../test/taped_test/RobotecGPULidar_taped_test ../ros2_standalone/*.so* . && | |
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test && | |
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp && ./RobotecGPULidar_test && ./RobotecGPULidar_taped_test' | |
docker-image: nvidia/cuda:11.7.1-base-ubuntu22.04 |