Skip to content

Commit

Permalink
Revert "adjust deploy operation"
Browse files Browse the repository at this point in the history
This reverts commit 2d8cf63.
  • Loading branch information
jstastny-cz committed May 3, 2024
1 parent 2d8cf63 commit 26adabc
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 15 deletions.
88 changes: 73 additions & 15 deletions .ci/jenkins/Jenkinsfile.deploy
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ pipeline {

PR_BRANCH_HASH = "${util.generateHash(10)}"

// Maven configuration
MAVEN_DEPLOY_LOCAL_DIR = "/tmp/maven_deploy_dir"
}

stages {
Expand Down Expand Up @@ -113,21 +115,13 @@ pipeline {
stage('Build OptaPlanner') {
steps {
script {
withCredentials([usernamePassword(credentialsId: env.MAVEN_REPO_CREDS_ID, usernameVariable: 'REPOSITORY_USER', passwordVariable: 'REPOSITORY_TOKEN')]) {
def installOrDeploy
if (shouldDeployToRepository()) {
installOrDeploy = "deploy -DdeployAtEnd -Dapache.repository.username=${REPOSITORY_USER} -Dapache.repository.password=${REPOSITORY_TOKEN} -DretryFailedDeploymentCount=5"
} else {
installOrDeploy = 'install'
}
configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
getOptaplannerMavenCommand()
.withProperty('maven.test.failure.ignore', true)
.withProperty('operator.image.build')
.skipTests(params.SKIP_TESTS)
.withSettingsXmlFile(MAVEN_SETTINGS_FILE)
.run("clean $installOrDeploy")
}
configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]){
getOptaplannerMavenCommand()
.withProperty('maven.test.failure.ignore', true)
.withProperty('operator.image.build')
.skipTests(params.SKIP_TESTS)
.withSettingsXmlFile(MAVEN_SETTINGS_FILE)
.run('clean install')
}
if (isRelease()) {
updateAntoraYaml(optaplannerFolder)
Expand Down Expand Up @@ -165,6 +159,46 @@ pipeline {
}
}
}
stage('Deploy locally') {
steps {
script {
runMavenDeploy(getOptaplannerMavenCommand(), optaplannerRepository)
}
}
}
stage('Deploy to repository') {
when {
expression { return shouldDeployToRepository() }
}
steps {
script {
withCredentials([usernamePassword(credentialsId: env.MAVEN_REPO_CREDS_ID, usernameVariable: 'REPOSITORY_USER', passwordVariable: 'REPOSITORY_TOKEN')]) {
configFileProvider([configFile(fileId: env.MAVEN_SETTINGS_CONFIG_FILE_ID, variable: 'MAVEN_SETTINGS_FILE')]) {
new MavenCommand(this)
.withSettingsXmlFile(MAVEN_SETTINGS_FILE)
.withProperty('wagon.source', "file://${getLocalDeploymentFolder(optaplannerRepository)}")
.withProperty('wagon.target', MAVEN_DEPLOY_REPOSITORY)
.withProperty('wagon.targetId', 'apache-snapshots-repository')
.withProperty('apache.snapshot.repository.username', REPOSITORY_USER)
.withProperty('apache.snapshot.repository.password', REPOSITORY_TOKEN)
.run("org.codehaus.mojo:wagon-maven-plugin:2.0.2:merge-maven-repos")
}
}
}
}
}

// stage('Upload artifacts to given repository') {
// when {
// expression { return isSpecificArtifactsUpload() }
// }
// steps {
// script {
// // Deploy to specific repository with credentials
// maven.uploadLocalArtifacts(env.MAVEN_REPO_CREDS_ID, getLocalDeploymentFolder(optaplannerRepository), getMavenRepoZipUrl())
// }
// }
// }
stage('Stage artifacts') {
when {
expression { return shouldStageArtifacts() }
Expand Down Expand Up @@ -397,8 +431,32 @@ String getMavenRepoZipUrl() {
return "${params.MAVEN_DEPLOY_REPOSITORY.replaceAll('/content/', '/service/local/').replaceFirst('/*$', '')}/content-compressed"
}

void runMavenStage(MavenCommand mvnCmd, String localDeployId) {
MavenStagingHelper stagingHelper = getStagingHelper(mvnCmd)
deployProperties.putAll(stagingHelper.stageLocalArtifacts(env.NEXUS_STAGING_PROFILE_ID, getLocalDeploymentFolder(localDeployId)))
stagingHelper.promoteStagingRepository(env.NEXUS_BUILD_PROMOTION_PROFILE_ID)
}

MavenStagingHelper getStagingHelper(MavenCommand mvnCmd) {
return new MavenStagingHelper(this, mvnCmd)
.withNexusReleaseUrl(env.NEXUS_RELEASE_URL)
.withNexusReleaseRepositoryId(env.NEXUS_RELEASE_REPOSITORY_ID)
}

String getLocalDeploymentFolder(String localDeployId) {
return "${env.MAVEN_DEPLOY_LOCAL_DIR}/${localDeployId}"
}

// Getters and Setters of params/properties

boolean isSpecificArtifactsUpload() {
return env.MAVEN_DEPLOY_REPOSITORY && env.MAVEN_REPO_CREDS_ID && !isDeployDisabled()
}

boolean shouldStageArtifacts() {
return !isSpecificArtifactsUpload() && isRelease() && !env.MAVEN_DEPLOY_REPOSITORY && !isDeployDisabled()
}

boolean shouldDeployToRepository() {
return (env.MAVEN_DEPLOY_REPOSITORY || isNotTestingBuild()) && !isDeployDisabled()
}
Expand Down
8 changes: 8 additions & 0 deletions .ci/jenkins/dsl/jobs.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,14 @@ void setupDeployJob(JobType jobType, String envName = '') {
OPERATOR_IMAGE_NAME: 'optaplanner-operator',
MAX_REGISTRY_RETRIES: 3,
])
if (jobType == JobType.RELEASE) {
jobParams.env.putAll([
NEXUS_RELEASE_URL: "${MAVEN_NEXUS_RELEASE_URL}",
NEXUS_RELEASE_REPOSITORY_ID: "${MAVEN_NEXUS_RELEASE_REPOSITORY}",
NEXUS_STAGING_PROFILE_ID: "${MAVEN_NEXUS_STAGING_PROFILE_ID}",
NEXUS_BUILD_PROMOTION_PROFILE_ID: "${MAVEN_NEXUS_BUILD_PROMOTION_PROFILE_ID}",
])
}
}
KogitoJobTemplate.createPipelineJob(this, jobParams)?.with {
parameters {
Expand Down

0 comments on commit 26adabc

Please sign in to comment.