jenmkinsfile

This commit is contained in:
Jesse Houldsworth 2025-03-27 12:04:44 -07:00
parent cd4976f64e
commit d3143ba0ce

71
Jenkinsfile vendored
View file

@ -4,64 +4,49 @@ pipeline {
maven 'maven-3' maven 'maven-3'
} }
environment { environment {
JFROG_URL = "https://trialt0zppb.jfrog.io"
JFROG_REPO_RELEASES = "petclinic-maven-dev-local"
JFROG_REPO_SNAPSHOTS = "petclinic-maven-dev-virtual"
JFROG_CREDENTIALS_ID = 'jfrog-saas' // Jenkins credential ID (username + API key or password)
JFROG_CLI_BUILD_NAME = "spring-petclinic" JFROG_CLI_BUILD_NAME = "spring-petclinic"
JFROG_CLI_BUILD_NUMBER = "${BUILD_ID}" JFROG_CLI_BUILD_NUMBER = "${BUILD_ID}"
ARTIFACTORY_URL = "https://trialt0zppb.jfrog.io/"
JF = "${WORKSPACE}/jf"
} }
stages { 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"
'''
}
}
stage('Configure JFrog CLI') { stage('Configure JFrog CLI') {
steps { steps {
withCredentials([usernamePassword(credentialsId: 'jfrog-saas', usernameVariable: 'ARTIFACTORY_USER', passwordVariable: 'ARTIFACTORY_PASSWORD')]) { withCredentials([usernamePassword(credentialsId: "${env.JFROG_CREDENTIALS_ID}", usernameVariable: 'JFROG_USER', passwordVariable: 'JFROG_API_KEY')]) {
sh ''' sh """
"$JF" c add petclinic \ jfrog config add jenkins-config \\
--url="${ARTIFACTORY_URL}" \ --url=${JFROG_URL} \\
--user="$ARTIFACTORY_USER" \ --user=$JFROG_USER \\
--password="$ARTIFACTORY_PASSWORD" \ --apikey=$JFROG_API_KEY \\
--interactive=false \ --interactive=false
--enc-password=false """
'''
} }
} }
} }
stage('Validate Connection') {
steps {
sh '"$JF" c use petclinic'
sh '"$JF" rt ping'
sh '"$JF" c show petclinic'
}
}
stage('Build Maven') { stage('Build Maven') {
steps { steps {
sh 'chmod +x mvnw' sh 'mvn clean install -DskipTests -Dcheckstyle.skip=true'
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('Upload to Artifactory') {
steps {
sh """
jfrog rt u "target/*.jar" ${JFROG_REPO_RELEASES}/ \\
--build-name=${JFROG_CLI_BUILD_NAME} \\
--build-number=${JFROG_CLI_BUILD_NUMBER}
"""
}
}
stage('Publish Build Info') { stage('Publish Build Info') {
steps { steps {
sh '"$JF" rt build-collect-env' sh """
sh '"$JF" rt build-add-git' jfrog rt bp ${JFROG_CLI_BUILD_NAME} ${JFROG_CLI_BUILD_NUMBER}
sh '"$JF" rt build-publish' """
} }
} }
} }