Tutorial: Handle Monorepos via CI/CD pipeline
A monorepo is a popular software development strategy to maintain multiple microservices in one source code repository. If you currently use a code-repository service different than GitHub, you can still capture your monorepo structures via a custom integration using the CI/CD endpoint as detailed below.
How to represent in VSM
LeanIX VSM supports hierarchies, i.e. parent-child relations, which can become handy for navigation & search. Monorepos are represented best in a hierarchy, e.g.
|_ Software Artifact 1 (Repo name) |_ Software Artifact 1.1 (Monorepo#1) |_ Software Artifact 1.2 (Monorepo#2) |_ Software Artifact 1.3 (Monorepo#3)
Import the actual repository
The repository itself can be imported via the GitHub Repository integration.
Import the monorepos
An easy way to augment the monorepo information is via CI/CD integration. In the metadata file, add custom attributes, e.g.
id: cicd-connector-v2 name: cicd-connector-v2 description: CI/CD revamped self: https://github.com/leanix/cicd-connector-v2/blob/main/lx-manifest.yml owner: [email protected] teams: - cider products: - leanix-vsm links: - name: vcs url: https://github.com/leanix/cicd-connector-v2 monorepos: - repo1 - repo2 - repo2
Now, you can add a custom integration API configuration on top of the predefined configuration, which creates a software artifact Fact Sheet for the monorepo, as well as the corresponding relToParent relation to the actual repo.
See also the tutorial to add custom logic to the CI/CD integration for more details.
Updated about 1 year ago