Skip to main content

SoftwareProject

SoftwareProject​

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

  • jee-applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.
  • custom

For custom nothing is generated, it is a placeholder.

The artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. a softwareProject creates are linked to it in the model (artifacts). See Artifact.

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 artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. that can be used in services and co-exist with the services using artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. 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.

Options​

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 Jenkinsfile.

Options​

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>

Stage​

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 applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. and send this information to the prime radiant.
buildThe build stage builds the artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. of your software project.
customThe custom stage allows you to have a completely custom implementation of a stage.
deployThe deploy stage will push your artifactsArtifactA build or deployment result, such as a Docker container image or Java archive, produced by a software project. to a specified location depending on conditions.
expandThe expand stage expands your applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. and clean harvests to check if there are no rogue files.
ns-auditThe ns-audit stage will run the NS Assessment Tool on the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution..
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).

Some stages are expected to run after other stages. There are model validations to indicate this.