fix: teardown blocks indefinitely when a reconnect thread is active and the robot is unreachable (#368) #2075
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
| name: ROS industrial ci | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: | |
| - master | |
| jobs: | |
| industrial_ci: | |
| name: ${{matrix.ROS_DISTRO.NAME}}, ${{matrix.ROS_REPO}} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| ROS_DISTRO: | |
| - NAME: noetic | |
| DOWNSTREAM_WORKSPACE: "github:UniversalRobots/Universal_Robots_ROS_Driver#master" | |
| - NAME: humble | |
| DOWNSTREAM_WORKSPACE: "github:UniversalRobots/Universal_Robots_ROS2_Driver#humble" | |
| - NAME: jazzy | |
| DOWNSTREAM_WORKSPACE: "github:UniversalRobots/Universal_Robots_ROS2_Driver#jazzy" | |
| - NAME: kilted | |
| DOWNSTREAM_WORKSPACE: "github:UniversalRobots/Universal_Robots_ROS2_Driver#kilted" | |
| - NAME: lyrical | |
| DOWNSTREAM_WORKSPACE: "github:UniversalRobots/Universal_Robots_ROS2_Driver#main" | |
| - NAME: rolling | |
| DOWNSTREAM_WORKSPACE: "github:UniversalRobots/Universal_Robots_ROS2_Driver#main" | |
| CLANG_TIDY: pedantic | |
| OS_CODE_NAME: "resolute" | |
| ROS_REPO: | |
| - main | |
| - testing | |
| env: | |
| # /tmp/ur_test_artifacts: collection point for test artifacts (e.g. VNC | |
| # snapshots) written from inside the ICI container. | |
| # /tmp/ursim_urcaps: shared storage for the External Control URCap. | |
| # Mounted at the same path in the ICI container AND used as the bind | |
| # source for the URSim container that start_ursim.sh launches via the | |
| # host docker daemon, so the URCap downloaded inside the ICI container | |
| # is actually visible to URSim's /urcaps mount. | |
| # Both paths are kept outside ${{ github.workspace }} so they do not | |
| # collide with industrial_ci's read-only bind-mount of TARGET_REPO_PATH. | |
| DOCKER_RUN_OPTS: '-v /var/run/docker.sock:/var/run/docker.sock -v /tmp/ur_test_artifacts:/test_artifacts -v /tmp/ursim_urcaps:/tmp/ursim_urcaps -e UR_TEST_ARTIFACTS_DIR=/test_artifacts -e UR_CI_URCAP_FOLDER=/tmp/ursim_urcaps --network ursim_net --ip 192.168.56.1' | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - run: docker network create --subnet=192.168.56.0/24 --gateway 192.168.56.254 ursim_net | |
| if: ${{ !env.ACT }} | |
| - name: Create shared host directories | |
| run: | | |
| mkdir -p /tmp/ur_test_artifacts /tmp/ursim_urcaps | |
| # Allow the container (running as root) to write here while keeping | |
| # the directory readable by the runner user for upload-artifact, and | |
| # writable by the host docker daemon when it bind-mounts /tmp/ursim_urcaps | |
| # into the URSim container. | |
| chmod 777 /tmp/ur_test_artifacts /tmp/ursim_urcaps | |
| - uses: 'ros-industrial/industrial_ci@master' | |
| env: | |
| IMMEDIATE_TEST_OUTPUT: true | |
| DOWNSTREAM_CMAKE_ARGS: -DUR_ROBOT_DRIVER_BUILD_INTEGRATION_TESTS=ON | |
| ADDITIONAL_DEBS: docker.io netcat-openbsd # Needed for integration tests | |
| DOWNSTREAM_WORKSPACE: ${{matrix.ROS_DISTRO.DOWNSTREAM_WORKSPACE}} | |
| ROS_DISTRO: ${{matrix.ROS_DISTRO.NAME}} | |
| ROS_REPO: ${{matrix.ROS_REPO}} | |
| CLANG_TIDY: ${{matrix.ROS_DISTRO.CLANG_TIDY}} | |
| OS_CODE_NAME: ${{matrix.ROS_DISTRO.OS_CODE_NAME}} | |
| - name: Upload test artifacts | |
| if: ${{ always() }} | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ur_test_artifacts-${{matrix.ROS_DISTRO.NAME}}-${{matrix.ROS_REPO}} | |
| path: /tmp/ur_test_artifacts |