Add GitHub CI config (#3)
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
This commit is contained in:
parent
fada2d0fc2
commit
d139a0f11b
2 changed files with 58 additions and 5 deletions
53
.github/workflows/test.yml
vendored
Normal file
53
.github/workflows/test.yml
vendored
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
name: Test
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- rolling
|
||||||
|
schedule:
|
||||||
|
- cron: "0 5 * * *"
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ubuntu:24.04
|
||||||
|
continue-on-error: ${{ matrix.build-type == 'binary' }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
distro:
|
||||||
|
- rolling
|
||||||
|
build-type:
|
||||||
|
- binary
|
||||||
|
- source
|
||||||
|
env:
|
||||||
|
ROS2_REPOS_FILE_URL: 'https://raw.githubusercontent.com/ros2/ros2/${{ matrix.distro }}/ros2.repos'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: ros-tooling/setup-ros@master
|
||||||
|
with:
|
||||||
|
required-ros-distributions: ${{ matrix.build-type == 'binary' && matrix.distro || '' }}
|
||||||
|
use-ros2-testing: true
|
||||||
|
- uses: ros-tooling/action-ros-ci@master
|
||||||
|
with:
|
||||||
|
package-name: ros2trace_analysis tracetools_analysis
|
||||||
|
target-ros2-distro: ${{ matrix.distro }}
|
||||||
|
vcs-repo-file-url: ${{ matrix.build-type == 'source' && env.ROS2_REPOS_FILE_URL || '' }}
|
||||||
|
colcon-defaults: |
|
||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"mixin": [
|
||||||
|
"coverage-pytest"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"test": {
|
||||||
|
"mixin": [
|
||||||
|
"coverage-pytest"
|
||||||
|
],
|
||||||
|
"executor": "sequential",
|
||||||
|
"retest-until-pass": 2,
|
||||||
|
"pytest-args": ["-m", "not xfail"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- uses: codecov/codecov-action@v3
|
||||||
|
with:
|
||||||
|
files: ros_ws/coveragepy/.coverage
|
|
@ -122,8 +122,8 @@ class Ros2DataModelUtil(DataModelUtil):
|
||||||
# Get their symbol
|
# Get their symbol
|
||||||
pretty_symbols = {}
|
pretty_symbols = {}
|
||||||
for obj in callback_objects:
|
for obj in callback_objects:
|
||||||
# There could be multiple callback symbols for the same callback object (pointer), e.g.,
|
# There could be multiple callback symbols for the same callback object (pointer),
|
||||||
# if we create and destroy subscriptions dynamically
|
# e.g., if we create and destroy subscriptions dynamically
|
||||||
symbols = callback_symbols.loc[obj, 'symbol']
|
symbols = callback_symbols.loc[obj, 'symbol']
|
||||||
symbols = symbols if isinstance(symbols, pd.Series) else [symbols]
|
symbols = symbols if isinstance(symbols, pd.Series) else [symbols]
|
||||||
# In that case, just combine the symbols
|
# In that case, just combine the symbols
|
||||||
|
@ -404,8 +404,8 @@ class Ros2DataModelUtil(DataModelUtil):
|
||||||
)
|
)
|
||||||
|
|
||||||
# There could be multiple subscriptions for the same subscription object pointer, e.g., if
|
# There could be multiple subscriptions for the same subscription object pointer, e.g., if
|
||||||
# we create and destroy subscriptions dynamically, so this subscription could belong to more
|
# we create and destroy subscriptions dynamically, so this subscription could belong to
|
||||||
# than one node
|
# more than one node
|
||||||
# In that case, just combine the information
|
# In that case, just combine the information
|
||||||
node_handles = subscriptions_info.loc[subscription_reference, 'node_handle']
|
node_handles = subscriptions_info.loc[subscription_reference, 'node_handle']
|
||||||
node_handles = node_handles if isinstance(node_handles, pd.Series) else [node_handles]
|
node_handles = node_handles if isinstance(node_handles, pd.Series) else [node_handles]
|
||||||
|
@ -421,7 +421,7 @@ class Ros2DataModelUtil(DataModelUtil):
|
||||||
subscription_info = {'topic': topic_name}
|
subscription_info = {'topic': topic_name}
|
||||||
# Turn list of dicts into dict of combined values
|
# Turn list of dicts into dict of combined values
|
||||||
node_handle_info = {
|
node_handle_info = {
|
||||||
key: ' and '.join(set(str(info[key]) for info in nodes_handle_info))
|
key: ' and '.join({str(info[key]) for info in nodes_handle_info})
|
||||||
for key in nodes_handle_info[0]
|
for key in nodes_handle_info[0]
|
||||||
}
|
}
|
||||||
return {**node_handle_info, **subscription_info}
|
return {**node_handle_info, **subscription_info}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue