diff --git a/ci-templates/auto-rules/no-default.yml b/ci-templates/auto-rules/no-default.yml
index 2bef990743dc0ed6f2fd9f57ebafebd9ff9d157a..5b16114725bfe29f62a8e29f806a3895cdd1eb85 100644
--- a/ci-templates/auto-rules/no-default.yml
+++ b/ci-templates/auto-rules/no-default.yml
@@ -17,6 +17,9 @@ workflow:
     - if: $CI_COMMIT_REF_NAME =~ /^jazzy-.*/
       variables:
         DEFAULT_DISTRO: "jazzy"
+    - if: $CI_COMMIT_REF_NAME =~ /^rolling-.*/
+      variables:
+        DEFAULT_DISTRO: "rolling"
     - if: $CI_COMMIT_TAG
     - if: $CI_COMMIT_BRANCH
 
@@ -60,6 +63,14 @@ industrial_ci_jazzy:
     - if: $DEFAULT_DISTRO == "jazzy"
     - if: $BUILD_JAZZY
 
+industrial_ci_rolling:
+  extends: .industrial_ci
+  variables:
+    ROS_DISTRO: rolling
+  rules:
+    - if: $DEFAULT_DISTRO == "rolling"
+    - if: $BUILD_ROLLING
+
 .py3_rules:
   rules:
     - if: $DEFAULT_DISTRO == "noetic"
@@ -74,6 +85,10 @@ industrial_ci_jazzy:
       when: always
     - if: $BUILD_JAZZY
       when: always
+    - if: $DEFAULT_DISTRO == "rolling"
+      when: always
+    - if: $BUILD_ROLLING
+      when: always
 
 py3-flake8:
   extends:
diff --git a/ci-templates/auto-rules/rolling-default.yml b/ci-templates/auto-rules/rolling-default.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9e2bf8bcaba38f3f473259f86b2130f6a71d1222
--- /dev/null
+++ b/ci-templates/auto-rules/rolling-default.yml
@@ -0,0 +1,4 @@
+include: ci-templates/auto-rules/no-default.yml
+
+variables:
+  DEFAULT_DISTRO: rolling
diff --git a/ci-templates/auto-rules/with-rosinstall/rolling-default.yml b/ci-templates/auto-rules/with-rosinstall/rolling-default.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0ccc57382eda75742e6b745ae6e4b8cc353e8159
--- /dev/null
+++ b/ci-templates/auto-rules/with-rosinstall/rolling-default.yml
@@ -0,0 +1,4 @@
+include: ci-templates/auto-rules/with-rosinstall/no-default.yml
+
+variables:
+  DEFAULT_DISTRO: rolling