ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Gitlab Continuous Integration error - Forbidden non-SCM element

asked 2021-08-30 05:38:00 -0500

DanieKorsah gravatar image

Context:

I'm a graduate junior dev who's been tasked with figuring out a CI solution for our industrial packing robot. We are using Gitlab as our git host, unmanaged with no onsite server. This makes Gitlab Ci the preferable option but since noone on staff has an CI/CD experience, if there is a more standard or better way of doing ROS CI then please let us know.

What I've attempted so far:

The ROS wiki was the first placeI checked and it linked to this repo by Victor Lamoine, who is also a user on the ROS Discourse forum. I first tried to use that on the production codebase and ran into credentials issues with pulling the submodules, no biggie, I can sort that out with more time getting to know environment variables in gitlab I think.

Problem:

I then set up the most basic ROS project I could which simply writes a twist topic. I apply the CI script from his example to it but I run into this error: ERROR in config: Forbidden non-SCM element: /home/daniel/ci_test/devel/setup.sh (setup-file)

This error is presenting me with quite an issue as it doesn't give much information about what is wrong and my attempts at googling it have fallen short. "Forbidden non-SCM element" in duck duck go returns the wiki page for God in Christianity as the second result. Hopefully I won't have to resort to prayer though.

I clearly don't know the correct search terms to figure out the meaning of the error, nor the experience to make significant edits to the Victor Lamoine repo if I fork if it turns out to be a third party issue with that setup.

I just need to know what I'm facing so I can start working the problem. Nobody is ever the first to have a problem on the internet. You just need to know what to search for.

Any help at all appreciated.

Thanks, Daniel

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2021-08-30 06:45:31 -0500

DanieKorsah gravatar image

Found the issue.

I had to git rm -r the devel directory and add it to the gitignore file. Seems obvious now. I took the error to mean the setup.bash was malformed, partly because builds work fine with it included locally, and I forgot it was a build artefact.

Remember to add build artefacts to gitignores.

Hopefully this was useful to anyone else experiencing the same error and struggling to find others who solved it.

edit flag offensive delete link more

Comments

You may want to look at industrial_ci. It has built-in support for Gitlab CI as well, and supports private repositories.

IIRC, the main difference with Victor's approach is that multiple .rosinstall files are not (automatically) supported, and industrial_ci typically runs everything in a Docker container (by default).

Other options are mentioned on the wiki page you (probably already found).

gvdhoorn gravatar image gvdhoorn  ( 2021-08-30 08:23:36 -0500 )edit

Thanks. I appreciate the advice. I had come across Industrial incidentally in another context (their own build service) and had seen it on the wiki too like you say. I'll investigate that route and see what ends up suiting best. I believe we'll end up making our own docker environment with all of our dependencies attached. Is that something which is known to be workable or standard?

DanieKorsah gravatar image DanieKorsah  ( 2021-08-31 05:35:08 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-08-30 05:38:00 -0500

Seen: 48 times

Last updated: Aug 30 '21