jenmkinsfile

This commit is contained in:
Jesse Houldsworth 2025-03-27 11:21:55 -07:00
parent 0da37b814d
commit 3a321133af

123
Jenkinsfile vendored
View file

@ -1,82 +1,51 @@
pipeline { pipeline {
agent any agent any
tools {
tools { maven 'maven-3'
maven 'maven-3'
}
environment {
JFROG_CLI_BUILD_NAME = "spring-petclinic"
JFROG_CLI_BUILD_NUMBER = "${BUILD_ID}"
ARTIFACTORY_URL = "https://trialt0zppb.jfrog.io/"
JF = "${WORKSPACE}/jf"
}
stages {
stage('Download JFrog CLI') {
steps {
sh '''
curl -fL https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/2.74.1/jfrog-cli-linux-arm64/jf -o "$JF"
chmod +x "$JF"
'''
}
} }
environment {
stage('Configure JFrog CLI') { JFROG_URL = "https://trialt0zppb.jfrog.io/artifactory"
steps { JFROG_REPO_RELEASES = "petclinic-maven-dev-local"
withCredentials([usernamePassword(credentialsId: 'jfrog-saas', usernameVariable: 'ARTIFACTORY_USER', passwordVariable: 'ARTIFACTORY_PASSWORD')]) { JFROG_REPO_SNAPSHOTS = "petclinic-maven-dev-virtual"
sh ''' JFROG_CREDENTIALS_ID = 'jfrog-saas'
"$JF" c add petclinic \ JFROG_CLI_BUILD_NAME = "spring-petclinic"
--url="${ARTIFACTORY_URL}" \ JFROG_CLI_BUILD_NUMBER = "${BUILD_ID}"
--user="$ARTIFACTORY_USER" \ }
--password="$ARTIFACTORY_PASSWORD" \ stages {
--interactive=false \ stage('Build Maven') {
--enc-password=false steps {
''' script {
// Using JFrog plugin to capture build info
artifactory.upload spec: """{
"files": [
{
"pattern": "target/*.jar",
"target": "${JFROG_REPO_RELEASES}/"
}
]
}"""
// Run Maven Build
sh 'mvn clean deploy -DskipTests -Dcheckstyle.skip=true'
}
}
}
stage('Publish Build Info') {
steps {
script {
// Publish build information to JFrog Artifactory
def buildInfo = Artifactory.newBuildInfo()
buildInfo.name = "${JFROG_CLI_BUILD_NAME}"
buildInfo.number = "${JFROG_CLI_BUILD_NUMBER}"
Artifactory.publishBuildInfo(buildInfo)
}
}
} }
}
} }
post {
stage('Validate Connection') { always {
steps { echo "Build complete: ${env.JFROG_CLI_BUILD_NAME} #${env.BUILD_NUMBER}"
sh '"$JF" c use petclinic' }
sh '"$JF" rt ping'
sh '"$JF" c show petclinic'
}
} }
}
stage('Build Maven') {
steps {
sh 'chmod +x mvnw'
sh '''
"$JF" mvnc --global \
--repo-resolve-releases=petclinic-maven-dev-virtual \
--repo-resolve-snapshots=petclinic-maven-dev-virtual \
--repo-deploy-releases=petclinic-maven-dev-local \
--repo-deploy-snapshots=petclinic-maven-dev-local
'''
sh '''
"$JF" mvn clean deploy \
-DskipTests -Dcheckstyle.skip=true \
--build-name="$JFROG_CLI_BUILD_NAME" \
--build-number="$JFROG_CLI_BUILD_NUMBER"
'''
}
}
stage('Publish Build Info') {
steps {
sh '"$JF" rt build-collect-env'
sh '"$JF" rt build-add-git'
sh '"$JF" rt build-publish'
}
}
}
post {
always {
echo "Build complete: ${env.JFROG_CLI_BUILD_NAME} #${env.BUILD_NUMBER}"
}
}
}