November 05, 2021

Pre-release testing for ROS2 packages

by Tyler Weaver

Transcript: Hey, I’m Tyler from Ross developer notes might as well start calling this Ross two developer notes though, because all I seem to talk to you about is Ross. Two stuff. I promise this one applies to Ross one and Ross two, but it’s gonna be more helpful for you if you’re on Ross two, because the Ross one stuff is well documented. This one is about pre-release testing. Remember when you go to cut a release for Ross one, you do this thing called a pre-release test and a pre-release test would locally emulate what the build farm is going to do for building your Debon and it help you catch issues so that you could fix them before you go. And, uh, bloom. And then the build farm discovers it, and a long process then to gotta do a patch. And right, so this, this helps catch it.

Remember this website, pre-release Ross org, and you go here and yout one of these three and it walk you through steps and give you hands, copy paste in your terminal and it’d run the pre one thing you don’t see here is anything that says Foxy rolling, or gal galactic. So you may assume, like we assume for a long time that prerelease testing doesn’t fist for Ross too. And that if you wanna do that, you have to like manually go through the steps building Deben locally. Like it would on the build farm. And that’s not something that everybody knows how to do, and it’s kind of cumbersome, but I’m here to tell you pre-release testing exists for us too. And like a lot of things in us too, it’s works really well. It’s just, there’s easy website that shows you how to do it. So I’m gonna do that for you today.

I’m gonna show you how to do it anyway. Um, we’ve looked at this many times, industrial CI industrial CI has become one of our best friends, overhead booth, move it when it comes to infrastructure and they have a way of running the pre-release test through industrial CI and they know they knew, or we knew that you could do it with Ross two and they already had it all hooked up. And so when we covered this, it was already working and it’s awesome. And we’re doing this for Ross one. We post two now, because when you set up your pre-release test to run on your CI system, it has a bunch of benefits. Like the logs are in a super public place. So you can collaborate with somebody over fixing an issue. It means it doesn’t tie up your machine for a couple hours to run. It’s. It’s great. It’s um, so I’m gonna show you an example. Uh, we’re gonna go in geometric shapes. Uh, so we go over the code in geometric shapes and workflows prerelease. Um, so Ross planning, geometric shapes. This is all you need basically, and here, see we’re doing it for Ross. One repo watch happens when it changes to rust two, all that changes now doing it for Foxy, galactic and rolling it’s otherwise the same vial.

That’s awesome. It means that converting from Ross one to Ross, two for pre release testing was just like changing the version of Ross name. How easy is that? It’s so cool. All right. So once you have this, the other thing I wanna point out is this workflow dispatch, we’re not running this on poll request. We run this when we manually kick it off that’s because right, you’re not cutting a release after every poll request lands and free release takes a couple hours to run. You wanna run this before you wanna cut a release every few months or six months, or, you know, whatever your reason that you cycle is. So, um, you can just add this to your repo, set it to workflow dispatch, then maintainers. Unfortunately, not other people, but maintainers at least can go into this actions tab, click on pre-release and then there’s this run workflow button.

And they can select which branch they want. Um, I, man, just a little while ago, kicked off one for the Ross, two branch, come in here and look at it, busy running. It’s the thing that was up earlier. Um, and you’ll see it like spit out some logs in a little bit. Um, I’ll just leave this up and we’ll go talk about some other stuff. So, um, what if you wanna run this locally, like you used to copy and pasting website? Well, it’s almost that easy you can use. You can run industrial CI locally. So if you come over here and you go to the, move it to RO org website here, I’ll show you how to find this page from the go move it to RO org, contribute development and click on continuous integration. Scroll down, read this section and it’ll walk you through how to run.

One of anything that you would run on a CI system, industrial CI can be run locally and it’s awesome. It commits a Docker image. You can play with it afterwards. Um, include all your release tests, click on this, the official documentation and GI on how to do it, and then come back. And I have a few more notes here for you. Helps you walk through it, but basically that’s it right here. We can see rolling already passed. It took seven minutes in this case, I guess pre-release for geom, extra shapes. Isn’t bad. Pretty used to it for move it where it’s like hours. Um, but your small packages, maybe you would want to add this to your CI system. I don’t know. Um, but that’s how you do it. You get rerelease testing on Ross two and it’s and you can run it locally, run it in CI. Or can you ask for anyway, if this V you has raised your Roth IQ, let me know. You can like share, subscribe, leave a comment, and I’m happy to respond to you here or come find me on discord. I’m always in the move at discord. Um, you can ping me there and I’ll respond questions. I’m happy to help you get this set up