Skip to main content

SoftwareProjects

SoftwareProject

A softwareProject represents a code-base that can be built. Currently the supported software project types are:

  • jee-application
  • custom

For custom nothing is generated, it is a placeholder.

Make sure to link the artifacts the softwareProject creates in the model.

Adding a softwareProject to the model will create a new directory in which you can put the code-base for this new softwareProject. This softwareProject can also create artifacts that can be used in services and co-exist with the services using artifacts from other softwareProjects.

Note

Using multiple softwareProjects should only be done when they are closely related. Standalone softwareProjects are better split up, each with their own repository.

Option
project.softwareProject.replaceInitialDatabaseScriptsWithExpandedScripts SoftwareProject

Replace the current initial database scripts with the expanded database initialization scripts to initialize the database.

This option should not be used in production environments.

Prerequisite

This option requires the SQL Migration setup to be used.

<options>
<project.softwareProject.replaceInitialDatabaseScriptsWithExpandedScripts/>
</options>
Option
project.softwareProject.frontend.name SoftwareProject

Name of the frontend expansion target. This option is typically needed when the softwareProject has a camelCased name.

<options>
<project.softwareProject.frontend.name/>
</options>

Pipeline

A pipeline represents the CI/CD pipeline. The only pipeline currently supported is the Jenkins pipeline. Adding a pipeline to your softwareProject will expand a Jenksinsfile.

Option
project.pipeline.relaxBranchVersionCheck Pipeline

Allow stages with a when clause to be run (on feature, bugfix and hotfix branches) even when no specific snapshot has been set

<options>
<project.pipeline.relaxBranchVersionCheck/>
</options>
Option
project.pipeline.slackChannel Pipeline

Used to set the slackChannel to send the build report to when a build is finished

<options>
<project.pipeline.slackChannel>build-status</project.pipeline.slackChannel>
</options>

Stages

Stages are the build steps in a CI/CD pipeline. When using the NS initializer or completing the migration guide, you will already have a pipeline with default stages present. Each stage is of a certain type, below is a table explaining what each type represents.

TypeUse case
AnalyzeThe analyze stage is for analyzing the model of your application and send this information to the prime radiant.
BuildThe build stage builds the artifacts of your software project.
CustomThe custom stage allows you to have a completely custom implementation of a stage.
DeployThe deploy stage will push your artifacts to a specified location depending on conditions.
ExpandThe expand stage expands your application and clean harvests to check if there are no rogue files.
ReportThe report stage will run through the quality gates.
TestThe test stage is currently empty, but is a placeholder for integration testing.
ValidateThe validate stage will do the model validation of the project setup and your software project(s).