Build your own components catalog
This article describes an introduction into building components catalogs.
There are 3 components available in the xrow-public/ci-tools that can be used as a reference for building your own components catalog:
- pipelines-components: A component to build a catalog of components. It is used to build a versioned catalog of components in this repository.
- test-pipeline: A component to trigger a downstream pipeline and wait for the result. It is used in the test pipelines of this repository.
- test-component: A component to test the functionality of the test-pipeline component. It is used in the test pipelines of this repository.
See the test project for reference.
Project and pipeline structure
docs/ <-- Markdown files are stored in the documentation folder>
└── index.md
container/ <-- build file for container images are stored in the container folder>
└── ubi10
├── Containerfile
templates/ <-- components are stored in the templates folder>
└── my-component
├── templates.yml
├── docs.md
├── test.yml
.gitlab-ci.yml <-- pipeline file to build and test the component>
Pipeline overview

Nesting components in new components
Example for a new Node.js component:
spec:
inputs:
name:
default: myapplication
image:
default: registry.access.redhat.com/ubi10/nodejs-22:10.1-1763032222
---
include:
- component: $CI_SERVER_FQDN/xrow-public/ci-tools/common@stable
- component: $CI_SERVER_FQDN/xrow-public/ci-tools/s2i@stable
inputs:
name: $[[ inputs.name ]]
type: nodejs
image: $[[ inputs.image ]]
# Continue with custom code