From 3a321133af50dc24d93f8a48a7552ee63490b690 Mon Sep 17 00:00:00 2001 From: Jesse Houldsworth Date: Thu, 27 Mar 2025 11:21:55 -0700 Subject: [PATCH] jenmkinsfile --- Jenkinsfile | 123 ++++++++++++++++++++-------------------------------- 1 file changed, 46 insertions(+), 77 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2534ac257..c3573eee7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,82 +1,51 @@ pipeline { - agent any - - tools { - 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" - ''' - } + agent any + tools { + maven 'maven-3' } - - stage('Configure JFrog CLI') { - steps { - withCredentials([usernamePassword(credentialsId: 'jfrog-saas', usernameVariable: 'ARTIFACTORY_USER', passwordVariable: 'ARTIFACTORY_PASSWORD')]) { - sh ''' - "$JF" c add petclinic \ - --url="${ARTIFACTORY_URL}" \ - --user="$ARTIFACTORY_USER" \ - --password="$ARTIFACTORY_PASSWORD" \ - --interactive=false \ - --enc-password=false - ''' + environment { + JFROG_URL = "https://trialt0zppb.jfrog.io/artifactory" + JFROG_REPO_RELEASES = "petclinic-maven-dev-local" + JFROG_REPO_SNAPSHOTS = "petclinic-maven-dev-virtual" + JFROG_CREDENTIALS_ID = 'jfrog-saas' + JFROG_CLI_BUILD_NAME = "spring-petclinic" + JFROG_CLI_BUILD_NUMBER = "${BUILD_ID}" + } + stages { + stage('Build Maven') { + 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) + } + } } - } } - - stage('Validate Connection') { - steps { - sh '"$JF" c use petclinic' - sh '"$JF" rt ping' - sh '"$JF" c show petclinic' - } + post { + always { + echo "Build complete: ${env.JFROG_CLI_BUILD_NAME} #${env.BUILD_NUMBER}" + } } - - 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}" - } - } -} +} \ No newline at end of file