Skip to content

Commit 4c89b1b

Browse files
authored
Update ci for foxy (#153)
* Make binary build really a build based on released binaries only. * Leave only foxy CI workflows.
1 parent cf85b8b commit 4c89b1b

11 files changed

+157
-74
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Binary Build - Foxy
2+
on:
3+
pull_request:
4+
branches:
5+
- foxy
6+
push:
7+
branches:
8+
- foxy
9+
schedule:
10+
# Run every morning to detect flakiness and broken dependencies
11+
- cron: '43 8 * * *'
12+
13+
jobs:
14+
foxy_binary:
15+
name: foxy binary build
16+
runs-on: ubuntu-latest
17+
strategy:
18+
matrix:
19+
env:
20+
- {ROS_DISTRO: foxy, ROS_REPO: main}
21+
- {ROS_DISTRO: foxy, ROS_REPO: testing}
22+
env:
23+
UPSTREAM_WORKSPACE: Universal_Robots_ROS2_Driver-not-released.${{ matrix.env.ROS_DISTRO }}.repos
24+
DOCKER_RUN_OPTS: --network static_test_net
25+
BEFORE_INIT: 'apt-get update -qq && apt-get install -y iproute2 iputils-ping && ip addr && ping -c5 192.168.56.101'
26+
IMMEDIATE_TEST_OUTPUT: true
27+
CCACHE_DIR: ${{ github.workspace }}/.ccache
28+
BASEDIR: ${{ github.workspace }}/.work
29+
CACHE_PREFIX: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}
30+
steps:
31+
- uses: actions/checkout@v1
32+
- name: start ursim
33+
run: |
34+
.github/dockerursim/build_and_run_docker_ursim.sh
35+
# The target directory cache doesn't include the source directory because
36+
# that comes from the checkout. See "prepare target_ws for cache" task below
37+
- name: cache target_ws
38+
if: ${{ ! matrix.env.CCOV }}
39+
uses: pat-s/[email protected]
40+
with:
41+
path: ${{ env.BASEDIR }}/target_ws
42+
key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }}
43+
restore-keys: |
44+
target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}
45+
- name: cache ccache
46+
uses: pat-s/[email protected]
47+
with:
48+
path: ${{ env.CCACHE_DIR }}
49+
key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }}
50+
restore-keys: |
51+
ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}
52+
ccache-${{ env.CACHE_PREFIX }}
53+
- uses: 'ros-industrial/industrial_ci@master'
54+
env: ${{matrix.env}}
55+
- name: prepare target_ws for cache
56+
if: ${{ always() && ! matrix.env.CCOV }}
57+
run: |
58+
du -sh ${{ env.BASEDIR }}/target_ws
59+
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete
60+
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src
61+
du -sh ${{ env.BASEDIR }}/target_ws

.github/workflows/ci-build-binary.yml

Lines changed: 0 additions & 32 deletions
This file was deleted.

.github/workflows/ci-build-coverage.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,8 @@
11
name: Coverage Build
22
on:
33
pull_request:
4-
push:
54
branches:
6-
- master
7-
- develop
8-
schedule:
9-
# Run every morning to detect flakiness and broken dependencies
10-
- cron: '58 8 * * *'
5+
- foxy
116

127
jobs:
138
coverage:
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Semi-Binary Build
2+
on:
3+
pull_request:
4+
branches:
5+
- foxy
6+
push:
7+
branches:
8+
- foxy
9+
schedule:
10+
# Run every morning to detect flakiness and broken dependencies
11+
- cron: '43 8 * * *'
12+
13+
jobs:
14+
binary:
15+
name: binary build
16+
runs-on: ubuntu-latest
17+
strategy:
18+
matrix:
19+
env:
20+
- {ROS_DISTRO: foxy, ROS_REPO: main}
21+
- {ROS_DISTRO: foxy, ROS_REPO: testing}
22+
env:
23+
UPSTREAM_WORKSPACE: Universal_Robots_ROS2_Driver.repos
24+
DOCKER_RUN_OPTS: --network static_test_net
25+
BEFORE_INIT: 'apt-get update -qq && apt-get install -y iproute2 iputils-ping && ip addr && ping -c5 192.168.56.101'
26+
IMMEDIATE_TEST_OUTPUT: true
27+
CCACHE_DIR: ${{ github.workspace }}/.ccache
28+
BASEDIR: ${{ github.workspace }}/.work
29+
CACHE_PREFIX: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }}
30+
steps:
31+
- uses: actions/checkout@v1
32+
- name: start ursim
33+
run: |
34+
.github/dockerursim/build_and_run_docker_ursim.sh
35+
# The target directory cache doesn't include the source directory because
36+
# that comes from the checkout. See "prepare target_ws for cache" task below
37+
- name: cache target_ws
38+
if: ${{ ! matrix.env.CCOV }}
39+
uses: pat-s/[email protected]
40+
with:
41+
path: ${{ env.BASEDIR }}/target_ws
42+
key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }}
43+
restore-keys: |
44+
target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}
45+
- name: cache ccache
46+
uses: pat-s/[email protected]
47+
with:
48+
path: ${{ env.CCACHE_DIR }}
49+
key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }}
50+
restore-keys: |
51+
ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}
52+
ccache-${{ env.CACHE_PREFIX }}
53+
- uses: 'ros-industrial/industrial_ci@master'
54+
env: ${{matrix.env}}
55+
- name: prepare target_ws for cache
56+
if: ${{ always() && ! matrix.env.CCOV }}
57+
run: |
58+
du -sh ${{ env.BASEDIR }}/target_ws
59+
sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete
60+
sudo rm -rf ${{ env.BASEDIR }}/target_ws/src
61+
du -sh ${{ env.BASEDIR }}/target_ws

.github/workflows/ci-build-source.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,25 @@ name: Source Build
22
on:
33
push:
44
branches:
5-
- master
6-
- develop
5+
- foxy
76
schedule:
87
# Run every morning to detect flakiness and broken dependencies
98
- cron: '43 1 * * *'
109

1110
jobs:
12-
source:
13-
name: source build
11+
foxy_source:
12+
name: foxy source build
1413
runs-on: ubuntu-20.04
1514
strategy:
1615
fail-fast: false
1716
steps:
1817
- uses: ros-tooling/[email protected]
18+
with:
19+
required-ros-distributions: foxy
20+
- uses: actions/checkout@v1
21+
- name: start ursim
22+
run: |
23+
.github/dockerursim/build_and_run_docker_ursim.sh
1924
- uses: ros-tooling/[email protected]
2025
with:
2126
target-ros2-distro: foxy

.github/workflows/ci-format.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ on:
88
pull_request:
99
push:
1010
branches:
11-
- master
12-
- develop
11+
- foxy
1312

1413
jobs:
1514
pre-commit:

.github/workflows/ci-ros-lint.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
name: ROS2 Lint
22
on:
33
pull_request:
4+
branches:
5+
- foxy
46

57
jobs:
68
ament_lint:

.github/workflows/ci-ursim.yml

Lines changed: 0 additions & 28 deletions
This file was deleted.

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,3 +162,14 @@ Prepare the pre-commit formatting to run like this:
162162
```
163163
pre-commit install`
164164
```
165+
166+
## CI setup
167+
168+
There are three build stages checking current and future compatibility of the driver.
169+
170+
1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.
171+
172+
1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
173+
Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.
174+
175+
1. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
repositories:
2+
ros2_control_demos:
3+
type: git
4+
url: https://github.com/ros-controls/ros2_control_demos.git
5+
version: master
6+
ur_msgs:
7+
type: git
8+
url: https://github.com/destogl/ur_msgs.git
9+
version: ros2

0 commit comments

Comments
 (0)