All Projects → ros-industrial → Industrial_ci

ros-industrial / Industrial_ci

Licence: apache-2.0
Easy continuous integration repository for ROS repositories

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Industrial ci

Tox
Command line driven CI frontend and development task automation tool.
Stars: ✭ 2,523 (+1628.08%)
Mutual labels:  continuous-integration, travis, gitlab
Ci Detector
Detect continuous integration environment and get information of current build
Stars: ✭ 138 (-5.48%)
Mutual labels:  continuous-integration, travis, gitlab
Env Ci
Get environment variables exposed by CI services
Stars: ✭ 180 (+23.29%)
Mutual labels:  continuous-integration, travis, gitlab
Gitlab Ci Monitor
A simple dashboard for monitoring GitLab CI builds. Alpha version.
Stars: ✭ 152 (+4.11%)
Mutual labels:  continuous-integration, gitlab
Cistern
A terminal UI for Unix to monitor Continuous Integration pipelines from the command line. Current integrations include GitLab, Azure DevOps, Travis CI, AppVeyor and CircleCI.
Stars: ✭ 161 (+10.27%)
Mutual labels:  travis, gitlab
Hands On Devops
A hands-on DevOps course covering the culture, methods and repeated practices of modern software development involving Packer, Vagrant, VirtualBox, Ansible, Kubernetes, K3s, MetalLB, Traefik, Docker-Compose, Docker, Taiga, GitLab, Drone CI, SonarQube, Selenium, InSpec, Alpine 3.10, Ubuntu-bionic, CentOS 7...
Stars: ✭ 196 (+34.25%)
Mutual labels:  continuous-integration, gitlab
plugin.video.sendtokodi
📺 plays various stream sites on kodi using youtube-dl
Stars: ✭ 86 (-41.1%)
Mutual labels:  continuous-integration, travis
Danger
🚫 Stop saying "you forgot to …" in code review (in Ruby)
Stars: ✭ 4,691 (+3113.01%)
Mutual labels:  travis, gitlab
Gitlab Ci Pipeline Php
☕️ Docker images for test PHP applications with Gitlab CI (or any other CI platform!)
Stars: ✭ 451 (+208.9%)
Mutual labels:  continuous-integration, gitlab
node example
ROS node examples with parameter server, dynamic reconfigure, timers, and custom messages for C++ and Python.
Stars: ✭ 90 (-38.36%)
Mutual labels:  continuous-integration, ros
go-semantic-release
automatic release
Stars: ✭ 34 (-76.71%)
Mutual labels:  gitlab, travis
Cimonitor
Displays CI statuses on a dashboard and triggers fun modules representing the status!
Stars: ✭ 34 (-76.71%)
Mutual labels:  continuous-integration, gitlab
Agola
Agola: CI/CD Redefined
Stars: ✭ 783 (+436.3%)
Mutual labels:  continuous-integration, gitlab
Go Gitlab Client
A Go gitlab API client & powerful CLI written in Go
Stars: ✭ 107 (-26.71%)
Mutual labels:  continuous-integration, gitlab
Terraform Aws Cicd
Terraform Module for CI/CD with AWS Code Pipeline and Code Build
Stars: ✭ 138 (-5.48%)
Mutual labels:  continuous-integration
Ansible Gitlab Runner
Ansible role to install gitlab-runner
Stars: ✭ 143 (-2.05%)
Mutual labels:  gitlab
Mavros controllers
Aggressive trajectory tracking using mavros for PX4 enabled vehicles
Stars: ✭ 139 (-4.79%)
Mutual labels:  ros
Moderncppstarter
🚀 Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
Stars: ✭ 2,381 (+1530.82%)
Mutual labels:  continuous-integration
Weloveinterns
中科院软件所智能软件中心实习生社区
Stars: ✭ 143 (-2.05%)
Mutual labels:  ros
Use Clippy
React Hook for reading from and writing to the user's clipboard.
Stars: ✭ 139 (-4.79%)
Mutual labels:  travis

================ Industrial CI

.. image:: https://travis-ci.com/ipa320/industrial_ci_mirror.svg?branch=mirror-master :target: https://travis-ci.com/ipa320/industrial_ci_mirror/branches :alt: Travis CI status .. image:: https://github.com/ros-industrial/industrial_ci/workflows/CI/badge.svg?branch=master :target: https://github.com/ros-industrial/industrial_ci/actions :alt: GitHub Actions status .. image:: https://gitlab.com/ipa-mdl/industrial_ci/badges/master/pipeline.svg :target: https://gitlab.com/ipa-mdl/industrial_ci/commits/master :alt: Gitlab CI status .. image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg :target: https://opensource.org/licenses/Apache-2.0 :alt: License

CI (Continuous Integration) configuration for ROS (Robot Operating System <http://ros.org>). This is the refactored version with ROS2 support, the old verson can be found in the legacy branch <https://github.com/ros-industrial/industrial_ci/tree/legacy>. Please check the migration guide <doc/migration_guide.md>__ as well.

.. contents:: Table of Contents :depth: 2

Detailed documentation

Other than the brief introduction in this page, you can also check the detailed doc here <./doc/index.rst>__.

Introduction

This package contains CI (Continuous Integration) <https://en.wikipedia.org/wiki/Continuous_integration>__ scripts that any ROS-powered packages can commonly use. Some notable feature:

  • Checks if your package builds, installs without issues. If unit/system tests are defined run them. ROS Prerelease Test <http://wiki.ros.org/bloom/Tutorials/PrereleaseTest>__ can optionally be run.
  • Proven to cover the general requirements of the ROS-based robotics repositories. Easily configurable.
  • Users can add custom pre/post processes.
  • Covers ROS1 Indigo, Jade, Kinetic, Lunar, Melodic, Noetic and ROS2 distributions.
  • This repo provides scripts for Bitbucket CI, Gitlab CI, GitHub Actions and Travis CI only, but it can be easily adapted for other CI services.

For a brief overall introduction, you could also check a presentation:

  • ROS-Industrial community meeting <http://rosindustrial.org/news/2016/6/14/ros-i-community-web-meeting-june-2016>__

Quick Start

With a few steps, you can start in your client repository using CI confiurations stored in industrial_ci.

For Travis CI

  1. Activate CI for your github repository on Travis CI <https://travis-ci.com/>__).

    a) You may do so either at https://travis-ci.com/github/YOUR_GITHUB_ORGANIZATION or at https://travis-ci.com/github/YOUR_GITHUB_USER (depending on where your repository sits). b) Activate CI beta for your bitbucket repository is similar, but the target link that your status badge directs to needs to be modified from https://travis-ci.com/USERNAME/REPO_NAME to https://travis-ci.com/bitbucket/USERNAME/REPO_NAME. By default, the generated link directs to a github repository.

  2. Add .travis.yml file to your repository root (complete template <https://github.com/ros-industrial/industrial_ci/blob/master/doc/.travis.yml>__):

::

language: generic services: - docker

env: matrix: - ROS_DISTRO="indigo"

install: - git clone --quiet --depth 1 https://github.com/ros-industrial/industrial_ci.git .industrial_ci -b master script: - .industrial_ci/travis.sh

  • Note: The name .industrial_ci is NO longer REQUIRED for the cloned folder starting version 0.3.2; you can pick any name (recommended practice to keep the folder hidden (by prepending ".").

For Gitlab CI

  1. Enable CI for your repo. Please refer to official doc <https://docs.gitlab.com/ee/ci/quick_start/>__ for the steps to do so. Note for Gitlab CI, necessary steps might be different between hosted version (i.e. the one on gitlab.com) v.s. the one on your own server, which Gitlab doesn't always clarify in its documentation.

    1. For your server version, enable a runner for your Gitlab project which uses the Docker executor. See instructions on how to install <https://docs.gitlab.com/runner/install/index.html>__ and register <https://docs.gitlab.com/runner/register/index.html>__ such a runner with your Gitlab instance if you haven't done so yet.
  2. In .gitlab-ci.yml file in your client repo, add the following minimal configuration (this snippet can be the entire content of the file), replacing indigo for your chosen distro:

::

image: docker:git services: - docker:dind before_script: - apk add --update bash coreutils tar - git clone --quiet --depth 1 https://github.com/ros-industrial/industrial_ci .industrial_ci -b master indigo: script: .industrial_ci/gitlab.sh ROS_DISTRO=indigo

For Bitbucket Pipelines

  1. Enable CI for your repo. Please refer to official doc <https://confluence.atlassian.com/bitbucket/get-started-with-bitbucket-pipelines-792298921.html>__ for the steps to do so.
  2. In the bitbucket-pipelines.yml file in your client repo, add the following minimal configuration (this snippet can be the entire content of the file), replacing indigo for your chosen distro:

::

image: docker:git

pipelines: default: - step: services: - docker script: - apk add --update bash coreutils tar - git clone --quiet --depth 1 https://github.com/ros-industrial/industrial_ci .industrial_ci -b master - .industrial_ci/bitbucket.sh ROS_DISTRO=indigo

definitions: services: docker: memory: 2048

For GitHub Actions

  1. Create .github/workflows/industrial_ci_action.yml (industrial_ci_action.yml is arbitrary, complete template <doc/industrial_ci_action.yml>__) with the following configuration, (this snippet can be the entire content of the file), replacing melodic for your chosen distro:

::

name: CI

on: [push, pull_request]

jobs: industrial_ci: strategy: matrix: env: - {ROS_DISTRO: melodic, ROS_REPO: testing} - {ROS_DISTRO: melodic, ROS_REPO: main} runs-on: ubuntu-latest steps: - uses: actions/[email protected] - uses: 'ros-industrial/[email protected]' env: ${{matrix.env}}

For Google Cloud Build

  1. Connect your source code repository to your Google Cloud Project. Please refer to the official documentation <https://cloud.google.com/build/docs/automating-builds/create-manage-triggers#gcloud>__ for the steps to do so.
  2. In the cloudbuild.yaml file in your client repo, add the following minimal configuration

::

steps: - name: 'ros:melodic' entrypoint: 'bash' args: - '-c' - |- git clone --depth 1 https://github.com/ros-industrial/industrial_ci .industrial_ci -b master .industrial_ci/ci.sh env: - 'ISOLATION=shell' - 'CI=true'

Concrete examples of config files

  • A template for Travis CI <doc/.travis.yml>__.
  • For development branch intended for ROS Indigo: ros_canopen <https://github.com/ros-industrial/ros_canopen/blob/0a42bf181804167834b8dc3b80bfca971f24546f/.travis.yml>__
  • For development branch intended for ROS Indigo onward:
    • example 1 <https://github.com/ros-industrial/industrial_core/blob/eeb6a470e05233d0efaaf8c32a9e4133cdcbb80b/.travis.yml>__ (Indigo and Jade compatible).
    • example 2 <https://github.com/ros-drivers/leap_motion/blob/954924befd2a6755f9d310f4a8b57aa526056a80/.travis.yml>__ (Indigo, Jade, Kinetic compatible. Also runs ROS Prerelease Test <http://wiki.ros.org/bloom/Tutorials/PrereleaseTest>__).
  • For development branch intended for ROS Kinetic: industrial_core <https://github.com/ros-industrial/industrial_core/blob/a07f9089b0f6c8a931bab80b7fca959dd6bba05b/.travis.yml>__
  • For more complexed example: .travis.yml <https://github.com/ros-industrial/industrial_ci/blob/d09b8dd40d7f1fa1ad5b62323a1d6b2ca836e558/.travis.yml>__ from the same repo. You can see how options are used.
  • For Gitlab CI, a small sample config <./.gitlab-ci.yml>__.

Metrics

There might not an easy way to precisely count how many repositories out there are using industrial_ci. Counting that number isn't even our priority at all, but we're often simply curious. Here's some ways that give us some clues for the usage metrics:

EoF

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].