Skip to content

Commit 3b68ea3

Browse files
Merge branch '4-ci-builds-without-mavenlocal-dependencies' into dev
2 parents 2ef3e55 + dc7b463 commit 3b68ea3

2 files changed

Lines changed: 41 additions & 20 deletions

File tree

Jenkinsfile

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ def COLOR_MAP = ['SUCCESS': 'good', 'FAILURE': 'danger', 'UNSTABLE': 'danger', '
44
String cronSchedule = BRANCH_NAME == 'dev' ? '*/30 1-5 * * *' : ''
55
String buildsToKeep = '500'
66

7+
String gradleArgs = '-Dorg.gradle.daemon=false --stacktrace'
8+
def publishBranch = 'publish'
9+
String versionPostfix = BRANCH_NAME == 'dev' ? '' : BRANCH_NAME // build script detects empty string as not set
10+
711
// https://jenkins.io/doc/book/pipeline/syntax/
812
pipeline {
913
agent { label 'java' }
@@ -44,16 +48,18 @@ pipeline {
4448
}
4549

4650
stage('upload-to-repo') {
47-
// Note: to avoid conflicts between snapshot versions, add the branch name
48-
// before '-SNAPSHOT' to the version string, like '1.2.3-branch-SNAPSHOT'
49-
when { expression { return BRANCH_NAME != 'publish' } }
51+
when { expression { return BRANCH_NAME != publishBranch } }
52+
environment {
53+
MVN_REPO_URL = credentials('objectbox_internal_mvn_repo')
54+
MVN_REPO_LOGIN = credentials('objectbox_internal_mvn_user')
55+
}
5056
steps {
51-
sh './gradlew --stacktrace -PpreferedRepo=local uploadArchives'
57+
sh "./gradlew $gradleArgs -PversionPostFix=${versionPostfix} -PpreferredRepo=${MVN_REPO_URL} -PpreferredUsername=${MVN_REPO_LOGIN_USR} -PpreferredPassword=${MVN_REPO_LOGIN_PSW} uploadArchives"
5258
}
5359
}
5460

5561
stage('upload-to-bintray') {
56-
when { expression { return BRANCH_NAME == 'publish' } }
62+
when { expression { return BRANCH_NAME == publishBranch } }
5763
environment {
5864
BINTRAY_URL = credentials('bintray_url')
5965
BINTRAY_LOGIN = credentials('bintray_login')
@@ -63,7 +69,7 @@ pipeline {
6369
slackSend color: "#42ebf4",
6470
message: "Publishing ${currentBuild.fullDisplayName} to Bintray...\n${env.BUILD_URL}"
6571
}
66-
sh './gradlew --stacktrace -PpreferedRepo=${BINTRAY_URL} -PpreferedUsername=${BINTRAY_LOGIN_USR} -PpreferedPassword=${BINTRAY_LOGIN_PSW} uploadArchives'
72+
sh "./gradlew $gradleArgs -PpreferredRepo=${BINTRAY_URL} -PpreferredUsername=${BINTRAY_LOGIN_USR} -PpreferredPassword=${BINTRAY_LOGIN_PSW} uploadArchives"
6773
script {
6874
slackSend color: "##41f4cd",
6975
message: "Published ${currentBuild.fullDisplayName} successfully to Bintray - check https://bintray.com/objectbox/objectbox\n${env.BUILD_URL}"

build.gradle

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,17 @@ version = ob_version
33

44
buildscript {
55
ext {
6-
ob_version = '2.4.0-SNAPSHOT'
7-
ob_native_version = ob_version // Be careful to diverge here; easy to forget and hard to find JNI problems
6+
// version post fix: '-<value>' or '' if not defined
7+
def versionPostFixValue = project.findProperty('versionPostFix')
8+
def versionPostFix = versionPostFixValue ? "-$versionPostFixValue" : ''
9+
ob_version = "2.4.0$versionPostFix-SNAPSHOT"
10+
11+
// Core version for tests
12+
// Be careful to diverge here; easy to forget and hard to find JNI problems
13+
ob_native_version = "2.4.0-SNAPSHOT"
14+
15+
println "Version $ob_version. Tests use Core version $ob_native_version."
16+
817
ob_expected_version = project.hasProperty('expectedVersion') ? project.property('expectedVersion') : 'UNDEFINED'
918

1019
isLinux = System.getProperty("os.name").contains("Linux")
@@ -54,7 +63,8 @@ configure(subprojects.findAll { projectNamesToPublish.contains(it.name) }) {
5463
}
5564

5665
dependencies {
57-
deployerJars 'org.apache.maven.wagon:wagon-webdav-jackrabbit:3.3.2'
66+
// Using an older version to remain compatible with Wagon API used by Gradle/Maven
67+
deployerJars 'org.apache.maven.wagon:wagon-webdav-jackrabbit:3.2.0'
5868
deployerJars 'org.apache.maven.wagon:wagon-ftp:3.3.2'
5969
}
6070

@@ -72,19 +82,24 @@ configure(subprojects.findAll { projectNamesToPublish.contains(it.name) }) {
7282
uploadArchives {
7383
repositories {
7484
mavenDeployer {
75-
if (project.hasProperty('preferedRepo') && preferedRepo == 'local') {
85+
def preferredRepo = project.findProperty('preferredRepo')
86+
println "preferredRepo=$preferredRepo"
87+
88+
if (preferredRepo == 'local') {
7689
repository url: repositories.mavenLocal().url
77-
} else if (project.hasProperty('preferedRepo') && project.hasProperty('preferedUsername')
78-
&& project.hasProperty('preferedPassword')) {
90+
} else if (preferredRepo != null
91+
&& project.hasProperty('preferredUsername')
92+
&& project.hasProperty('preferredPassword')) {
7993
configuration = configurations.deployerJars
80-
// Replace for bintray's dynamic URL
81-
preferedRepo = preferedRepo.replace('__groupId__', project.group)
82-
preferedRepo = preferedRepo.replace('__artifactId__', project.archivesBaseName)
83-
// println preferedRepo
84-
repository(url: preferedRepo) {
85-
authentication(userName: preferedUsername, password: preferedPassword)
94+
// replace placeholders
95+
def repositoryUrl = preferredRepo
96+
.replace('__groupId__', project.group)
97+
.replace('__artifactId__', project.archivesBaseName)
98+
repository(url: repositoryUrl) {
99+
authentication(userName: preferredUsername, password: preferredPassword)
86100
}
87-
} else if (project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')) {
101+
} else if (project.hasProperty('sonatypeUsername')
102+
&& project.hasProperty('sonatypePassword')) {
88103
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
89104
def isSnapshot = version.endsWith('-SNAPSHOT')
90105
def sonatypeRepositoryUrl = isSnapshot ?
@@ -94,7 +109,7 @@ configure(subprojects.findAll { projectNamesToPublish.contains(it.name) }) {
94109
authentication(userName: sonatypeUsername, password: sonatypePassword)
95110
}
96111
} else {
97-
println "Settings sonatypeUsername/sonatypePassword missing/incomplete for ${project.name}"
112+
println "Deployment settings missing/incomplete for ${project.name}."
98113
}
99114

100115
pom.project {

0 commit comments

Comments
 (0)