## Job Descriptions Jenkins Multijob to build and archive UDS Artifacts (docker images, source repositories, .war files etc.) and pushe to Artifactory. Can accept multiple project source repositories for instances where repositories depend on each other in order to build. Intended for use within Aegis. [Link To Jira Ticket](https://jira.nordix.org/browse/AEGIS-36) - uds-verify-package-promote - Multijob root that creates build.properties file to share build parameters and pull project source repositories - uds-verify - Job that does a Maven build for each project source repository specified - uds-package-artifacts - Job that gathers file artifacts specified (.war .jar etc.) and places in a directory to be pushed to Artifactory - uds-package-images - Job archives each docker image using 'docker save' into a tarball and places in a directory to be pushed to Artifactory - uds-package-repositories - Job that archives the project source repositories into a tarball to be pushed to Artifactory - uds-promote-* - Jobs that push each of the Artifacts (docker images, source repos and war files etc.) to their specified location within Artifactory ## Job Parameters Job parameters include; - PROJECTS - Nordix Gerrit projects to build and archive (e.g. project1, project2) - BRANCHES - Project branches to pull from (e.g. project1branch, project2branch) - PROJECT_DIRECTORIES - Directories names to place projects - PROJECT_VERSIONS - SHA commit ids/versions of PROJECTS source repositories to checkout e.g. 6d3ab..., d96ba... Allows for building from specific versions of a source or can also be left blank to pull latest source. - GIT_BASE_HTTPS - Base HTTPS URL of repository to clone from - MVN_VERSION - Maven version to build with - MVN_URL - Download URL for Maven - MVN - Path to mvn executable - MVN_PARAMS - Maven build parameters - MVN_SETTINGS_XML_VERSION - SHA commit id/version for the ONAP oparent repository to checkout. Used for retrieving the ONAP Maven settings.xml file for the Maven build process. Can be left blank to pull the latest version. - ARTIFACTORY_URL - Artifactory URL to push to - POM_LOCATION - Path to repository pom.xml parsed for version number used within archive filenames (e.g. uds.version) - GREP_PARAMS - Parameters for grep command used for parsing pom file for version number used within archive filenames - ARCHIVENAME - Name to be given to archive holding the repositories pushed to Artifactory - ARTIFACTORY_REPO_ARCHIVE_PATH - Artifactory repository and path to push repository archive to - REPO_ARCHIVE_ARTIFACT_DIRECTORY - Workspace directory to hold repository artifacts - DOCKER_IMAGES - Docker image names to archive and push to Artifactory - ARTIFACTORY_DOCKER_IMAGES_PATH - Artifactory repository and path to push docker images to - DOCKER_IMAGE_ARTIFACT_DIRECTORY - Workspace directory to hold docker image artifacts - ARTIFACT_PATHS - Artifact file paths that should be pushed to Artifactory, can contain wildcards - ARTIFACTORY_ARTIFACT_PATH - Artifactory repository and path to push artifacts to e.g. .war .jar files - ARTIFACT_DIRECTORY - Workspace directory to hold artifacts ## Job Requirements Jenkins Job requires the following packages installed on the Jenkins slave - Maven (tested with v3.6.0) - Docker (tested with v3.3.9) - Java (tested with 1.8.0) For further information about building SDC see [link](https://wiki.onap.org/pages/viewpage.action?pageId=16004156)