#Project-ncl
Requirements:
- JDK 8
- Maven 3.2
Command line arguments:
The default build is executed by running mvn clean install.
By default the tests that require remote services and integration tests are disabled.
In order to run remote and integration tests you have to specify remote services location and credentials by editing configuration file common/src/main/resources/pnc-config.json.
By default the configuration file uses env variables, you can set required variables (see file for list of them) instead of editing the file itself.
If you want to use a different (external) config file location you can define a path to it with -Dpnc-config-file=/path/to/pnc-config.json.
Remote tests are defined by class name *RemoteTest.java
To run remote test use ḿvn clean install -DremoteTest=true
Integration tests are placed in module "integrations-tests" to run them use -Pintegration-test.
To run remote and integration tests combine both commands ḿvn clean install -DremoteTest=true -Pintegration-test.
datastore: Implementation of pnc-spi:org.jboss.pnc.spi.datastorejenkins-build-driver: Implementation of pnc-spi:org.jboss.pnc.spi.builddrivermaven-repository-manager: Implementation of pnc-spi:org.jboss.pnc.spi.repositorymanagerpnc-core: Contains implementations of action-controllers, which include the business logic for orchestrating builds, test runs, etc. Action controllers are used to isolate logic from the REST API, so it can be reused in embedded scenariospnc-model: Contains domain model for the orchestrator. This is just model classes + serialization helpers, and would also be suitable for writing a java client api to support integrationpnc-rest-bindings: REST API. This is a series of classes that use JAX-RS to translate HTTP communications to calls into the action controllers in the core, and format any output (such as constructing resource URLs, etc.)pnc-spi: Contains all SPI interfaces the orchestrator will use to coordinate its sub-services for provisioning environments and repositories, triggering builds, storing domain objects. It is meant to be used in conjunction with pnc-modelpnc-web: Contains Web UI resoures (html + js pages, images etc.)