Build Convention Tiles

This page documents tiles that provide standardized NGSS build conventions and aggregated functionality.

Aggregation Convention Tiles

These tiles bundle multiple related tiles together to provide complete build solutions for common project types.

ngss-service-build-conventions-tile

Provides language-agnostic NGSS service build conventions and artifact generation.

Purpose

Establishes standard NGSS build practices for generating deployment and operational artifacts.

Included Tiles
  • jenkinsfile-generator-tile

  • kubernetes-generator-tile

  • vv-automation-tile

  • effective-metadata-generator-tile

  • deployment-readme-generator-tile

Features
  • CI/CD pipeline generation (Jenkinsfiles)

  • Kubernetes manifest generation

  • V&V process automation

  • Metadata processing and validation

  • Deployment documentation generation

Properties
  • enforcer.failOnViolation=true: Enforces build requirements

  • vamf.service.basepath: Service API base path

  • vamf.service.main: Service main class

Java Project Profile

When a src/main/java directory exists, automatically activates enforcer rules that validate:

  • Service base path follows /[short_name]/v[majorVersion] format (e.g., /users/v1)

  • Main class follows gov.va.* package structure

  • Required properties are properly configured

Usage

Use for any NGSS service that needs standard deployment artifacts and CI/CD integration.

ngss-java-service-build-conventions-tile

Extends ngss-service-build-conventions-tile with Java-specific build standards.

Purpose

Provides complete Java service build conventions including testing, code quality, and code generation.

Included Functionality
  • All features from ngss-service-build-conventions-tile

  • OpenAPI service code generation

  • Comprehensive testing and coverage reporting

  • Code quality enforcement (PMD, CheckStyle, SpotBugs)

Usage

Recommended for most Java-based NGSS services as it provides a complete build solution.

ngss-code-quality-standards-tile

Comprehensive code quality enforcement configuration for Java projects.

Purpose

Enforces NGSS code quality standards through static analysis tools.

Features
  • PMD: Code quality analysis and best practice enforcement

  • CheckStyle: Code style and formatting standards

  • SpotBugs: Bug pattern detection and security analysis

  • Enforcer: Dependency and build requirement validation

Standards Enforced
  • NGSS coding conventions

  • Security best practices

  • Performance guidelines

  • Code maintainability standards

Configuration Source

Originally derived from jersey-service-parent configurations.

Usage

Can be used standalone or is automatically included in ngss-java-service-build-conventions-tile.

Individual Convention Tiles

These tiles can be used independently or as part of larger convention aggregations.

all-tests-with-coverage-tile

Comprehensive testing solution combining unit tests, integration tests, and coverage reporting.

Purpose

Provides complete testing infrastructure for Java projects.

Features
  • Surefire configuration for unit tests

  • Failsafe configuration for integration tests

  • JaCoCo coverage reporting and enforcement

  • Test result aggregation

Coverage Requirements
  • Line coverage thresholds

  • Branch coverage thresholds

  • Coverage report generation

  • Build failure on insufficient coverage

Usage

Use when you need comprehensive testing and coverage reporting for Java projects.

Tile Dependencies and Interactions

Some tiles have implicit dependencies on others
  • ngss-java-service-build-conventions-tile may require helm-tile for integration test execution

  • JaCoCo integration tests rely on running services (often provided by Helm deployments)

  • Code generation tiles may require specific project structure and metadata files

Recommendation

Use the aggregation tiles (ngss-java-service-build-conventions-tile or ngss-service-build-conventions-tile) unless you have specific requirements that necessitate granular tile selection.