Configuration

If your project is using the tiles-maven-plugin, the easiest way to upgrade is to upgrade ngss-maven-tiles to version 1.5.3. This release sets the default version of ci-file-generator to 4.12.1, and therefore automatically includes the necessary changes to assist with migrating to the new Jenkinsfile.

As before, make these changes to the main service module of your project.

In the case of a multi-module project that will usually be located in the subdirectory named the same as your project (i.e., /dev/projects/eula-service/eula-service/pom.xml). If it’s a single module project, it will be in the root (/dev/projects/eula-web/pom.xml)

Upgrade ngss-maven-tiles

If you define a POM property for managing the ngss-maven-tiles version (usually named ngss-tiles.verison), update its value to 1.5.3.

<!-- service module pom.xml -->
<properties>
    <ngss-tiles.version>1.5.3</ngss-tiles.version>
</properties>

Upgrade ci-file-generator

If not using Tiles, add a new or update the plugin configuration for ci-file-generator.

<properties>
    <ci-file-generator.version>4.12.1</ci-file-generator.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>gov.va.vamf.tool</groupId>
            <artifactId>ci-file-generator</artifactId>
            <version>${ci-file-generator.version}</version>
        </plugin>
    </plugins>
</build>

Set new jenkinsSharedLib flag

In order to enable the generation of the new Jenkinsfile and also automatically validate the syntax of the jenkins.yaml configuration file when including the standard jenkinsfile-generator-tile, add this property to the service module pom.xml:

<project>
    <!-- ... -->
    <properties>
        <jenkinsSharedLib>true</jenkinsSharedLib>
    </properties>
    <!-- ... -->
</project>

Remove Unnecessary Overrides

If you have overridden any default ci-file-generator configurations via POM properties, these may be able to be removed. For instance, VAOS has their own set of Jenkinsfile templates that contain changes to deploy to a namespace other than the default sqa, which required those projects to set <ckm-deployment-templates.branch>sqa-vista</ckm-deployment-templates.branch>.

Since the Shared Library is more flexible and now allows project and environment-specific overrides in the jenkins.yaml, this can handled by setting the deployNamespace value in the staging environment to sqa-vista without needing to provide custom Jenkinsfile templates:

jenkins.yaml
# ...

staging:
  deployNamespace: sqa-vista