Created
January 15, 2020 02:28
-
-
Save danielalejandrohc/9e3ed4ead556b32b77e831746257e636 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pipeline { | |
agent { | |
label "master" | |
} | |
tools { | |
// Note: This should match with the tool name configured in your jenkins instance (JENKINS_URL/configureTools/) | |
maven "Maven 3.6.0" | |
} | |
environment { | |
// This can be nexus3 or nexus2 | |
NEXUS_VERSION = "nexus3" | |
// This can be http or https | |
NEXUS_PROTOCOL = "http" | |
// Where your Nexus is running. 'nexus-3' is defined in the docker-compose file | |
NEXUS_URL = "nexus-3:8081" | |
// Repository where we will upload the artifact | |
NEXUS_REPOSITORY = "repository-example" | |
// Jenkins credential id to authenticate to Nexus OSS | |
NEXUS_CREDENTIAL_ID = "nexus-credentials" | |
} | |
stages { | |
stage("clone code") { | |
steps { | |
script { | |
// Let's clone the source | |
git 'https://github.com/danielalejandrohc/cargotracker.git'; | |
} | |
} | |
} | |
stage("mvn build") { | |
steps { | |
script { | |
// If you are using Windows then you should use "bat" step | |
// Since unit testing is out of the scope we skip them | |
sh "mvn package -DskipTests=true" | |
} | |
} | |
} | |
stage("publish to nexus") { | |
steps { | |
script { | |
// Read POM xml file using 'readMavenPom' step , this step 'readMavenPom' is included in: https://plugins.jenkins.io/pipeline-utility-steps | |
pom = readMavenPom file: "pom.xml"; | |
// Find built artifact under target folder | |
filesByGlob = findFiles(glob: "target/*.${pom.packaging}"); | |
// Print some info from the artifact found | |
echo "${filesByGlob[0].name} ${filesByGlob[0].path} ${filesByGlob[0].directory} ${filesByGlob[0].length} ${filesByGlob[0].lastModified}" | |
// Extract the path from the File found | |
artifactPath = filesByGlob[0].path; | |
// Assign to a boolean response verifying If the artifact name exists | |
artifactExists = fileExists artifactPath; | |
if(artifactExists) { | |
echo "*** File: ${artifactPath}, group: ${pom.groupId}, packaging: ${pom.packaging}, version ${pom.version}"; | |
nexusArtifactUploader( | |
nexusVersion: NEXUS_VERSION, | |
protocol: NEXUS_PROTOCOL, | |
nexusUrl: NEXUS_URL, | |
groupId: pom.groupId, | |
version: pom.version, | |
repository: NEXUS_REPOSITORY, | |
credentialsId: NEXUS_CREDENTIAL_ID, | |
artifacts: [ | |
// Artifact generated such as .jar, .ear and .war files. | |
[artifactId: pom.artifactId, | |
classifier: '', | |
file: artifactPath, | |
type: pom.packaging], | |
// Lets upload the pom.xml file for additional information for Transitive dependencies | |
[artifactId: pom.artifactId, | |
classifier: '', | |
file: "pom.xml", | |
type: "pom"] | |
] | |
); | |
} else { | |
error "*** File: ${artifactPath}, could not be found"; | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment