This is an automated email from the ASF dual-hosted git repository. jbarrett pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push: new 76af1dd GEODE-5597 Publish geode artifacts to maven repo on GCS (#2347) 76af1dd is described below commit 76af1dd2fc5dc35a80f61066645978bbb382f417 Author: FSOUTHERLAND <39743785+fsoutherl...@users.noreply.github.com> AuthorDate: Mon Aug 27 13:30:36 2018 -0700 GEODE-5597 Publish geode artifacts to maven repo on GCS (#2347) * Uses vanilla maven-publish Gradle plugin, instead of nexus (nexus is still used for release artifact publishing) * GCS credentials are inherited from the concourse worker Co-authored-by: Finn Southerland <fsoutherl...@pivotal.io> Co-authored-by: Jake Barrett <bjarr...@pivotal.io> --- build.gradle | 2 +- ci/pipelines/geode-build/deploy_pipeline.sh | 2 + ci/pipelines/geode-build/jinja.template.yml | 39 +++++++++- ci/scripts/publish.sh | 96 +++++++++++++++++++++++ geode-assembly/build.gradle | 47 +++++------ geode-core/build.gradle | 14 ++-- geode-junit/build.gradle | 2 +- geode-lucene/build.gradle | 2 +- geode-pulse/build.gradle | 10 +-- geode-web-api/build.gradle | 2 +- geode-web/build.gradle | 10 +-- gradle/publish.gradle | 117 +++++++++++++++++++++++++--- gradle/test.gradle | 8 ++ gradle/utilities.gradle | 3 + 14 files changed, 298 insertions(+), 56 deletions(-) diff --git a/build.gradle b/build.gradle index 674621d..52dae34 100755 --- a/build.gradle +++ b/build.gradle @@ -80,7 +80,7 @@ if (name == 'geode') { ext.scriptDir = 'gradle' } - +// utilities.gradle MUST be read before publish.gradle for reasons apply from: "${scriptDir}/utilities.gradle" apply from: "${scriptDir}/java.gradle" apply from: "${scriptDir}/dependency-resolution.gradle" diff --git a/ci/pipelines/geode-build/deploy_pipeline.sh b/ci/pipelines/geode-build/deploy_pipeline.sh index dd60acc..bd6709f 100755 --- a/ci/pipelines/geode-build/deploy_pipeline.sh +++ b/ci/pipelines/geode-build/deploy_pipeline.sh @@ -73,6 +73,8 @@ pushd ${SCRIPTDIR} 2>&1 > /dev/null # Template and output share a directory with this script, but variables are shared in the parent directory. python3 ../render.py jinja.template.yml ../shared/jinja.variables.yml generated-pipeline.yml || exit 1 + grep -n . generated-pipeline.yml + fly login -t ${TARGET} \ -n ${TEAM} \ -c https://concourse.apachegeode-ci.info \ diff --git a/ci/pipelines/geode-build/jinja.template.yml b/ci/pipelines/geode-build/jinja.template.yml index 39acf0a..c15fad0 100644 --- a/ci/pipelines/geode-build/jinja.template.yml +++ b/ci/pipelines/geode-build/jinja.template.yml @@ -47,6 +47,7 @@ groups: - {{test.name}}Test {% endfor -%} - UpdatePassingRef + - PublishArtifacts resources: - name: geode-build-artifact @@ -168,6 +169,7 @@ jobs: - put: geode-build-version params: file: results/number + - name: UpdatePassingRef public: true serial: true @@ -181,6 +183,7 @@ jobs: - get: geode-ci - get: docker-geode-build-image - task: updatepassingref + image: docker-geode-build-image config: platform: linux params: @@ -194,7 +197,41 @@ jobs: - name: geode-ci outputs: - name: results - image: docker-geode-build-image + +- name: PublishArtifacts + public: true + plan: + - get: geode + passed: + {% for test in tests if not test.name=="StressNew" -%} + - {{test.name}}Test + {% endfor %} + trigger: true + - get: geode-ci + - get: geode-build-version + params: + pre: build + - task: publish + config: + platform: linux + image_resource: + type: docker-image + source: + password: ((!docker-password)) + repository: gcr.io/apachegeode-ci/{{ pipeline_prefix() }}((!docker-image-name)) + tag: latest + username: ((!docker-username)) + params: + MAINTENANCE_VERSION: {{repository.branch}} + PUBLIC_BUCKET: ((!public-bucket)) + SERVICE_ACCOUNT: ((!concourse-gcp-account)) + run: + path: geode-ci/ci/scripts/publish.sh + inputs: + - name: geode + - name: geode-ci + - name: geode-build-version + {% for test in tests if not test.name=="StressNew" %} - name: {{test.name}}Test public: true diff --git a/ci/scripts/publish.sh b/ci/scripts/publish.sh new file mode 100755 index 0000000..6e0e91e --- /dev/null +++ b/ci/scripts/publish.sh @@ -0,0 +1,96 @@ +#!/usr/bin/env bash + +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +set -e +ROOT_DIR=$(pwd) +BUILD_DATE=$(date +%s) +EMAIL_SUBJECT="results/subject" +EMAIL_BODY="results/body" + +GEODE_BUILD_VERSION_FILE=${ROOT_DIR}/geode-build-version/number +GEODE_RESULTS_VERSION_FILE=${ROOT_DIR}/results/number +GEODE_BUILD_VERSION_NUMBER=$(grep "versionNumber *=" geode/gradle.properties | awk -F "=" '{print $2}' | tr -d ' ') +GEODE_BUILD_DIR=/tmp/geode-build +GEODE_PULL_REQUEST_ID_FILE=${ROOT_DIR}/geode/.git/id +if [ -e "${GEODE_PULL_REQUEST_ID_FILE}" ]; then + GEODE_PULL_REQUEST_ID=$(cat ${GEODE_PULL_REQUEST_ID_FILE}) +fi + +if [ ! -e "${GEODE_BUILD_VERSION_FILE}" ] && [ -z "${GEODE_PULL_REQUEST_ID}" ]; then + echo "${GEODE_BUILD_VERSION_FILE} file does not exist. Concourse is probably not configured correctly." + exit 1 +fi +if [ -z ${MAINTENANCE_VERSION+x} ]; then + echo "MAINTENANCE_VERSION is unset. Check your pipeline configuration and make sure this script is called properly." + exit 1 +fi +if [ -z ${SERVICE_ACCOUNT+x} ]; then + echo "SERVICE_ACCOUNT is unset. Check your pipeline configuration and make sure this script is called properly." + exit 1 +fi + +if [ -z ${PUBLIC_BUCKET+x} ]; then + echo "PUBLIC_BUCKET is unset. Check your pipeline configuration and make sure this script is called properly." + exit 1 +fi + +if [ -z ${GEODE_BUILD_VERSION_NUMBER+x} ]; then + echo "gradle.properties does not seem to contain a valid versionNumber. Please check the source tree." + exit 1 +fi + +if [ -z "${GEODE_PULL_REQUEST_ID}" ]; then + CONCOURSE_VERSION=$(cat ${GEODE_BUILD_VERSION_FILE}) + CONCOURSE_PRODUCT_VERSION=${CONCOURSE_VERSION%%-*} + GEODE_PRODUCT_VERSION=${GEODE_BUILD_VERSION_NUMBER} + CONCOURSE_BUILD_SLUG=${CONCOURSE_VERSION##*-} + BUILD_ID=${CONCOURSE_VERSION##*.} + FULL_PRODUCT_VERSION=${GEODE_PRODUCT_VERSION}-${CONCOURSE_BUILD_SLUG} + echo "Concourse VERSION is ${CONCOURSE_VERSION}" + echo "Geode product VERSION is ${GEODE_PRODUCT_VERSION}" + echo "Build ID is ${BUILD_ID}" +else + FULL_PRODUCT_VERSION="geode-pr-${GEODE_PULL_REQUEST_ID}" +fi + +printf "\nUsing the following JDK:" +java -version +printf "\n\n" + +gcloud config set account ${SERVICE_ACCOUNT} + +export TERM=${TERM:-dumb} +export DEST_DIR=${ROOT_DIR}/built-geode +export TMPDIR=${DEST_DIR}/tmp +mkdir -p ${TMPDIR} +export BUILD_ARTIFACTS_DIR=${DEST_DIR}/test-artifacts +mkdir -p ${BUILD_ARTIFACTS_DIR} + +ln -s ${ROOT_DIR}/geode ${GEODE_BUILD_DIR} + +pushd ${GEODE_BUILD_DIR} + set +e + set -x + ./gradlew --no-daemon --parallel -PbuildId=${BUILD_ID} publish + GRADLE_EXIT_STATUS=$? + set +x +popd + +exit ${GRADLE_EXIT_STATUS} diff --git a/geode-assembly/build.gradle b/geode-assembly/build.gradle index 312151f..c324e21 100755 --- a/geode-assembly/build.gradle +++ b/geode-assembly/build.gradle @@ -27,6 +27,19 @@ extraArchive { tests = false } +publishing { + publications { + maven { + artifactId = 'apache-geode' + + artifacts = [] + + artifact distTar + artifact distZip + } + } +} + logger.info("Gradle doesn't automatically remove the jar artifact even though we disabled it") logger.info("this causes publishing to fail. So we nuke all the disabled artifacts from all configurations.") configurations.all { @@ -174,7 +187,7 @@ def cp = { // then add all the dependencies of the dependent jars jars += ' ' + configurations.archives.dependencies.collect { it.dependencyProject.findAll { !(it.name.contains('web-api') || it.name.contains('pulse')) } - .collect { it.configurations.runtime.collect { it.getName() }.findAll { + .collect { it.configurations.runtimeClasspath.collect { it.getName() }.findAll { // depedencies from geode-core it.contains('antlr') || it.contains('commons-io') || @@ -372,37 +385,27 @@ distributions { } into ('lib') { - from project(":geode-common").configurations.runtime + from project(":geode-common").configurations.runtimeClasspath from project(":geode-common").configurations.archives.allArtifacts.files - - from project(":geode-json").configurations.runtime + from project(":geode-json").configurations.runtimeClasspath from project(":geode-json").configurations.archives.allArtifacts.files - - from project(":geode-wan").configurations.runtime + from project(":geode-wan").configurations.runtimeClasspath from project(":geode-wan").configurations.archives.allArtifacts.files - - from project(":geode-cq").configurations.runtime + from project(":geode-cq").configurations.runtimeClasspath from project(":geode-cq").configurations.archives.allArtifacts.files - - from project(":geode-core").configurations.runtime + from project(":geode-core").configurations.runtimeClasspath from project(":geode-core").configurations.archives.allArtifacts.files - - from project(":geode-lucene").configurations.runtime + from project(":geode-lucene").configurations.runtimeClasspath from project(":geode-lucene").configurations.archives.allArtifacts.files - - from project(":geode-connectors").configurations.runtime + from project(":geode-connectors").configurations.runtimeClasspath from project(":geode-connectors").configurations.archives.allArtifacts.files - - from project(":geode-old-client-support").configurations.runtime + from project(":geode-old-client-support").configurations.runtimeClasspath from project(":geode-old-client-support").configurations.archives.allArtifacts.files - - from project(":geode-protobuf").configurations.runtime + from project(":geode-protobuf").configurations.runtimeClasspath from project(":geode-protobuf").configurations.archives.allArtifacts.files - - from project(":geode-protobuf-messages").configurations.runtime + from project(":geode-protobuf-messages").configurations.runtimeClasspath from project(":geode-protobuf-messages").configurations.archives.allArtifacts.files - - from project(":geode-rebalancer").configurations.runtime + from project(":geode-rebalancer").configurations.runtimeClasspath from project(":geode-rebalancer").configurations.archives.allArtifacts.files from configurations.bundled diff --git a/geode-core/build.gradle b/geode-core/build.gradle index bc08ae0..14db4c8 100755 --- a/geode-core/build.gradle +++ b/geode-core/build.gradle @@ -21,8 +21,8 @@ apply plugin: 'me.champeau.gradle.jmh' sourceSets { jca { - compileClasspath += configurations.compile - runtimeClasspath += configurations.runtime + compileClasspath += configurations.compileClasspath + runtimeClasspath += configurations.runtimeClasspath } } @@ -86,19 +86,19 @@ dependencies { compile 'org.apache.logging.log4j:log4j-api:' + project.'log4j.version' compile 'org.apache.logging.log4j:log4j-core:' + project.'log4j.version' - runtime('org.fusesource.jansi:jansi:' + project.'jansi.version') { + runtimeOnly ('org.fusesource.jansi:jansi:' + project.'jansi.version') { ext.optional = true } - runtime 'org.slf4j:slf4j-api:' + project.'slf4j-api.version' + runtimeOnly 'org.slf4j:slf4j-api:' + project.'slf4j-api.version' - runtime('org.apache.logging.log4j:log4j-slf4j-impl:' + project.'log4j.version') { + runtimeOnly ('org.apache.logging.log4j:log4j-slf4j-impl:' + project.'log4j.version') { exclude module: 'slf4j-api' ext.optional = true } - runtime('org.apache.logging.log4j:log4j-jcl:' + project.'log4j.version') { + runtimeOnly ('org.apache.logging.log4j:log4j-jcl:' + project.'log4j.version') { ext.optional = true } - runtime('org.apache.logging.log4j:log4j-jul:' + project.'log4j.version') { + runtimeOnly ('org.apache.logging.log4j:log4j-jul:' + project.'log4j.version') { ext.optional = true } compile('org.eclipse.jetty:jetty-webapp:' + project.'jetty.version') { diff --git a/geode-junit/build.gradle b/geode-junit/build.gradle index 1a42918..6cf285c 100755 --- a/geode-junit/build.gradle +++ b/geode-junit/build.gradle @@ -35,7 +35,7 @@ dependencies { } compile 'org.hamcrest:hamcrest-all:' + project.'hamcrest-all.version' - runtime project(":geode-old-versions") + runtimeOnly project(":geode-old-versions") } test { diff --git a/geode-lucene/build.gradle b/geode-lucene/build.gradle index 6d943cd..0016275 100644 --- a/geode-lucene/build.gradle +++ b/geode-lucene/build.gradle @@ -23,7 +23,7 @@ dependencies { exclude module: 'lucene-sandbox' } - runtime 'org.apache.lucene:lucene-analyzers-phonetic:' + project.'lucene.version' + runtimeOnly 'org.apache.lucene:lucene-analyzers-phonetic:' + project.'lucene.version' testCompile project(':geode-junit') testCompile project(':geode-lucene/geode-lucene-test') diff --git a/geode-pulse/build.gradle b/geode-pulse/build.gradle index e860c6e..316376e 100755 --- a/geode-pulse/build.gradle +++ b/geode-pulse/build.gradle @@ -1,5 +1,3 @@ -import org.apache.geode.gradle.TestPropertiesWriter - /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -31,10 +29,10 @@ dependencies { compile 'commons-digester:commons-digester:' + project.'commons-digester.version' compile 'commons-lang:commons-lang:' + project.'commons-lang.version' compile 'org.springframework.ldap:spring-ldap-core:' + project.'spring-ldap-core.version' - runtime 'org.springframework:spring-expression:' + project.'springframework.version' + runtimeOnly 'org.springframework:spring-expression:' + project.'springframework.version' // added only to ensure common version with other geode modules - runtime 'org.slf4j:slf4j-api:' + project.'slf4j-api.version' + runtimeOnly 'org.slf4j:slf4j-api:' + project.'slf4j-api.version' compile ('org.springframework.security:spring-security-config:' + project.'spring-security.version') { exclude module: 'aopalliance' @@ -54,7 +52,7 @@ dependencies { } compile ('org.springframework:spring-context:' + project.'springframework.version'); compile ('org.springframework:spring-web:' + project.'springframework.version'); - runtime ('org.springframework:spring-webmvc:' + project.'springframework.version') { + runtimeOnly ('org.springframework:spring-webmvc:' + project.'springframework.version') { exclude module: 'aopalliance' exclude module: 'aspectjweaver' } @@ -123,7 +121,7 @@ artifacts { war { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - classpath configurations.runtime + classpath configurations.runtimeClasspath classpath project(':geode-core').webJar.archivePath } war.dependsOn(':geode-core:webJar') diff --git a/geode-web-api/build.gradle b/geode-web-api/build.gradle index 0a8f722..682bc63 100755 --- a/geode-web-api/build.gradle +++ b/geode-web-api/build.gradle @@ -73,5 +73,5 @@ war { duplicatesStrategy = DuplicatesStrategy.EXCLUDE // this shouldn't be necessary but if it's not specified we're missing some of the jars // from the runtime classpath - classpath configurations.runtime + classpath configurations.runtimeClasspath } diff --git a/geode-web/build.gradle b/geode-web/build.gradle index 1ce2fa6..a9b0464 100755 --- a/geode-web/build.gradle +++ b/geode-web/build.gradle @@ -21,22 +21,22 @@ dependencies { compileOnly 'javax.servlet:javax.servlet-api:' + project.'javax.servlet-api.version' compileOnly project(path: ':geode-core', configuration: 'classesOutput') - runtime ('org.springframework:spring-aspects:' + project.'springframework.version') { + runtimeOnly ('org.springframework:spring-aspects:' + project.'springframework.version') { exclude module: 'aspectjweaver' exclude module: 'aopalliance' exclude module: 'spring-core' } - runtime('org.springframework:spring-oxm:' + project.'springframework.version') { + runtimeOnly('org.springframework:spring-oxm:' + project.'springframework.version') { exclude module: 'commons-logging' exclude module: 'spring-beans' exclude module: 'spring-core' } - runtime('org.springframework:spring-webmvc:' + project.'springframework.version') { + runtimeOnly('org.springframework:spring-webmvc:' + project.'springframework.version') { exclude module: 'aopalliance' exclude module: 'aspectjweaver' exclude module: 'spring-core' } - runtime('commons-fileupload:commons-fileupload:' + project.'commons-fileupload.version') { + runtimeOnly('commons-fileupload:commons-fileupload:' + project.'commons-fileupload.version') { exclude module: 'commons-io' } @@ -89,6 +89,6 @@ integrationTest.dependsOn(war) war { dependsOn ':geode-core:webJar' duplicatesStrategy = DuplicatesStrategy.EXCLUDE - classpath configurations.runtime + classpath configurations.runtimeClasspath classpath project(':geode-core').webJar.archivePath } diff --git a/gradle/publish.gradle b/gradle/publish.gradle index bb558a7..7e47a0c 100644 --- a/gradle/publish.gradle +++ b/gradle/publish.gradle @@ -17,20 +17,21 @@ subprojects { apply plugin: 'com.bmuschko.nexus' - + apply plugin: 'maven-publish' + extraArchive { sources = true javadoc = true tests = false } - + nexus { sign = Boolean.parseBoolean(nexusSignArchives) repositoryUrl = 'https://repository.apache.org/service/local/staging/deploy/maven2' snapshotRepositoryUrl = 'https://repository.apache.org/content/repositories/snapshots' } - + modifyPom { withXml { def elem = asElement() @@ -54,12 +55,14 @@ subprojects { elem.insertBefore(hdr, elem.getFirstChild()) - + //This black magic checks to see if a dependency has the flag ext.optional=true //set on it, and if so marks the dependency as optional in the maven pom def depMap = project.configurations.compile.dependencies.collectEntries { [it.name, it] } def runtimeDeps = project.configurations.runtime.dependencies.collectEntries { [it.name, it] } + def runtimeOnlyDeps = project.configurations.runtimeOnly.dependencies.collectEntries { [it.name, it] } depMap.putAll(runtimeDeps) + depMap.putAll(runtimeOnlyDeps) asNode().dependencies.dependency.findAll { def dep = depMap.get(it.artifactId.text()) return dep?.hasProperty('optional') && dep.optional @@ -76,20 +79,20 @@ subprojects { name 'Apache Geode' description 'Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing' url 'http://geode.apache.org' - + scm { url 'https://github.com/apache/geode' connection 'scm:git:https://github.com:apache/geode.git' developerConnection 'scm:git:https://github.com:apache/geode.git' } - + licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } - + repositories { repository { id 'libs-release' @@ -99,7 +102,7 @@ subprojects { } } } - + // The nexus plugin reads authentication from ~/.gradle/gradle.properties but the // jenkins server stores publishing credentials in ~/.m2/settings.xml (maven). // We match on the expected snapshot repository id. @@ -122,7 +125,99 @@ subprojects { } } } -} + + + publishing { + publications { + maven(MavenPublication) { + from components.java + + // uses the tasks created by nexus for sources and javadoc + if (!getTasksByName('sourcesJar', false).isEmpty()) { + artifact sourcesJar + } + if (!getTasksByName('javadocJar', false).isEmpty()) { + artifact javadocJar + } + + pom { + name = 'Apache Geode' + description = 'Apache Geode provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing' + url = 'http://geode.apache.org' + + scm { + url = 'https://github.com/apache/geode' + connection = 'scm:git:https://github.com:apache/geode.git' + developerConnection = 'scm:git:https://github.com:apache/geode.git' + } + + licenses { + license { + name = 'The Apache Software License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + + withXml { + //This black magic checks to see if a dependency has the flag ext.optional=true + //set on it, and if so marks the dependency as optional in the maven pom + def depMap = project.configurations.compile.dependencies.collectEntries { [it.name, it] } + def runtimeDeps = project.configurations.runtime.dependencies.collectEntries { [it.name, it] } + def runtimeOnlyDeps = project.configurations.runtimeOnly.dependencies.collectEntries { [it.name, it] } + depMap.putAll(runtimeDeps) + depMap.putAll(runtimeOnlyDeps) + asNode().dependencies.dependency.findAll { + def dep = depMap.get(it.artifactId.text()) + return dep?.hasProperty('optional') && dep.optional + }.each { + if (it.optional) { + it.optional.value = 'true' + } else { + it.appendNode('optional', 'true') + } + } + } + } + pom { + withXml { + def elem = asElement() + def hdr = elem.ownerDocument().createComment( + ''' + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ''') + elem.insertBefore(hdr, elem.firstChild) + } + } + } + } + repositories { + maven { + if (project.hasProperty("mavenRepository")) { + url = project.mavenRepository + } else { + if (version.endsWith('SNAPSHOT')) { + url = "gcs://maven.apachegeode-ci.info/snapshots" + } + } + } + } + } + + +} // subprojects //Prompt the user for a password to sign archives or upload artifacts, if requested gradle.taskGraph.whenReady { taskGraph -> @@ -137,7 +232,7 @@ gradle.taskGraph.whenReady { taskGraph -> if(!project.hasProperty('signing.password')) { def password = PasswordDialog.askPassword("Please enter your password to unlock your gpg keyring for signing artifacts") - + subprojects { ext."signing.password" = password } } } @@ -151,7 +246,7 @@ gradle.taskGraph.whenReady { taskGraph -> if(!project.hasProperty('nexusPassword')) { def password = PasswordDialog.askPassword("Please enter your apache password to uploadArchives to nexus") - + subprojects { ext."nexusPassword" = password } } } diff --git a/gradle/test.gradle b/gradle/test.gradle index 504719c..751c20e 100644 --- a/gradle/test.gradle +++ b/gradle/test.gradle @@ -121,6 +121,14 @@ subprojects { } } + // Facets does not extend the new runtimeOnly configurations + configurations.integrationTestRuntimeOnly.extendsFrom(configurations.runtimeOnly) + configurations.distributedTestRuntimeOnly.extendsFrom(configurations.runtimeOnly) + configurations.performanceTestRuntimeOnly.extendsFrom(configurations.runtimeOnly) + configurations.acceptanceTestRuntimeOnly.extendsFrom(configurations.runtimeOnly) + configurations.uiTestRuntimeOnly.extendsFrom(configurations.runtimeOnly) + configurations.upgradeTestRuntimeOnly.extendsFrom(configurations.runtimeOnly) + dependencies { integrationTestCompile 'org.jmock:jmock-junit4:' + project.'jmock.version' integrationTestCompile 'org.jmock:jmock-legacy:' + project.'jmock.version' diff --git a/gradle/utilities.gradle b/gradle/utilities.gradle index d4d616f..a43d742 100644 --- a/gradle/utilities.gradle +++ b/gradle/utilities.gradle @@ -43,6 +43,9 @@ allprojects { afterEvaluate { install.enabled = false uploadArchives.enabled = false + tasks.withType(PublishToMavenRepository) { + it.enabled = false + } } } disableSigning = {