Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub actions for kinetic, melodic, and noetic #9

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

lucasw
Copy link
Contributor

@lucasw lucasw commented May 8, 2021

Resolves #8

Could add in 16.04 support if desired.

Had to base this on the 20.04 python3 fixes from #4 to make the noetic build work- could disable the 20.04 action here now then re-introduce after that PR is merged.

Two lifecycle imports are getting run, other than building that is the only test.

This test is getting called manually and working:

roslaunch `rospack find lifecycle_test_library`/examples/launch/lifecycle_test.launch

Making it into a regular rostest ought to be in another PR so when it fails CI fails also.

Probably could make use of more actions and actions features but I like the straight forward style and mostly being able to cut and paste straight out of the yaml into a terminal to duplicate. Could revisit that in the future.

More python 3 fixes, also newline
@lucasw lucasw changed the title GitHub actions for 18.04 and 20.04 GitHub actions for kinetic, melodic, and noetic May 8, 2021
Copy link
Contributor

@mjyc mjyc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left mostly minor comment except the one question about whether the assert statements still fail or not


jobs:
build:
# TODO(lucasw) if no changes with 18.04 run in an action matrix
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably could make use of more actions and actions features but I like the straight forward style and mostly being able to cut and paste straight out of the yaml into a terminal to duplicate. Could revisit that in the future.

I agree with your comment above but seeing the following tiny diff makes me wonder if there is a good way to remove

$ diff .github/workflows/ubuntu_16.04.yml .github/workflows/ubuntu_18_04.yml
1c1
< name: Kinetic ROS CI
---
> name: Melodic ROS CI
7,8c7
<     # TODO(lucasw) if no changes with 18.04 run in an action matrix
<     runs-on: ubuntu-16.04
---
>     runs-on: ubuntu-18.04
12c11
<       ROS_DISTRO: kinetic
---
>       ROS_DISTRO: melodic

NIT: if you decide not to consolidate the two files, I suggest removing this comment

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try out the matrix and combine the files.

I'm not sure how long apt-get for anything in 16.04 can be expected to work (or is it just no updates, the ROS and Canonical repos will serve the final releases for years?), or maybe 18.04 will get updates that break 16.04 for just the action here- but we can deal with that when the time comes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

18.04 and 16.04 combined easily, combining with noetic build probably wouldn't be too bad, python-is-python3 plus an action if block around the differing apt installs should do it, but that could be a follow on PR also.

.github/workflows/ubuntu_16.04.yml Outdated Show resolved Hide resolved
.github/workflows/ubuntu_16.04.yml Outdated Show resolved Hide resolved
.github/workflows/ubuntu_16.04.yml Outdated Show resolved Hide resolved
.github/workflows/ubuntu_16.04.yml Outdated Show resolved Hide resolved
.github/workflows/ubuntu_16.04.yml Outdated Show resolved Hide resolved
.github/workflows/ubuntu_18_04.yml Outdated Show resolved Hide resolved
- name: Setup for ROS install
run: |
sudo sh -c "echo \"deb http://packages.ros.org/ros/ubuntu $ROS_CI_DESKTOP main\" > /etc/apt/sources.list.d/ros-latest.list"
# this breaks catkin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this comment and the next line I vote for keeping it as-is.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't tested that recently and maybe it is no longer relevant, I think it was from a time when a dependency hadn't yet been released into noetic but was in ros-testing, but then ros-testing wasn't working either.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ended up removing it

lifecycle_test_library/scripts/lifecycle_node_test.py Outdated Show resolved Hide resolved
Try running lifecycle_test.launch (after adding a needed node to it) - works but doesn't result in a non-zero exit code if it does fail (see ros/ros_comm#2082).  Turn it into a rostest in separate PR.
@lucasw lucasw marked this pull request as draft May 9, 2021 15:14
@lucasw
Copy link
Contributor Author

lucasw commented May 9, 2021

Converted to draft until we decide what to do with #4 - I could delete ubuntu_20_04.yml from this PR and only have the 16.04 and 18.04 builds here, but then combine the noetic build with #4 instead.

@mjyc
Copy link
Contributor

mjyc commented May 9, 2021

Thanks @lucasw for addressing my comments & clarifying my questions.

I could delete ubuntu_20_04.yml from this PR and only have the 16.04 and 18.04 builds here, but then combine the noetic build with #4 instead.

I don't mind having things this way.

Although this is dependent on #4 as @lucasw mentioned above, this PR looks good to me as well. cc @iluetkeb

@iluetkeb
Copy link
Collaborator

Including the Python 3 stuff here is fine for me.

Otherwise, I think if having shell statements instead of actions is easer, I'm all for adding basic CI at all now and improving later.

.github/workflows/ubuntu_18_04.yml Show resolved Hide resolved
.github/workflows/ubuntu_18_04.yml Show resolved Hide resolved
.github/workflows/ubuntu_18_04.yml Outdated Show resolved Hide resolved
.github/workflows/ubuntu_18_04.yml Show resolved Hide resolved
.github/workflows/ubuntu_18_04.yml Outdated Show resolved Hide resolved
…changing into catkin_ws dir

Get rid of sourcing of setup.bash, the next run block does it
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

github action for CI
3 participants