/ros_jenkins

ROS1 and ROS2 continuous integration pipeline using Jenkins.

Primary LanguageShell

ROS1 Jenkins

In software engineering, DevOps (Development and Operations) refers to the practices and methodologies used to streamline the development, deployment, and maintenance. Jenkins is one such popular open-source automation server used in DevOps practices, including in robotics.

Jenkins is used to setting up automated workflows to ensure that changes to the codebase are tested and integrated smoothly, leading to more efficient development and deployment processes.

ros cpp python

Structure

.
├── ros1
│   └── gazebo
│       ├── Dockerfile
│       └── ros_entrypoint.sh
├── Jenkinsfile
├── Makefile
├── README.md
└── start_jenkins.sh

The project contains two branches, one for noetic distribution and a second for galactic distribution.

- ros1 # noetic
- ros2 # galactic

Setup

A Makefile is a script used in software engineering to automate the process, to execute the Makefile open the terminal and execute the following commands for root of the project directory.

Verify

# check if you are on correct branch
$ git branch
*ros1

Install

# install and setup docker
$ make setup-docker
# setup terminal
$ make setup-tty
# install, setup or start jenkins
$ make setup-jenkins

Note: In case installation of Docker and Jenkins is already done in the past the above steps in not needed.

Jenkins

# find the web address for jenkins
$ jenkins_address
# alternative
$ cat ~/jenkins__pid__url.txt
# find login credentials
$ cat ~/jenkins__login.txt

Login

To access the Jenkins server open the web address in a new tab and log in to the server using credentials.

login

Note: The server contains two pipelines ROS1 and ROS2, one for each branch ros1 and ros2 as SCM poll build triggers.

Pull Request

# create a new branch from base branch
$ git checkout -b ros1 ros1-modified
# create new generic file
$ touch .gitignore
# commit changes to new branch
$ git commit -am "test: check jenkins build via pr"

Note: Create a pull request from ros1-modified to ros1.

Tools

System tool/modules used for project development.

License

Distributed under the MIT License. See LICENSE.txt for more information.