mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-07-12 13:23:29 +00:00
Add Deploy Artifacts Support
Fixes gh-7939
This commit is contained in:
parent
b87ea1373d
commit
ba4953b057
@ -1,5 +1,8 @@
|
||||
apply plugin: 'maven-bom'
|
||||
apply from: "$rootDir/gradle/maven-deployment.gradle"
|
||||
apply from: "$rootDir/gradle/artifactory.gradle"
|
||||
apply from: "$rootDir/gradle/ossrh.gradle"
|
||||
apply from: "$rootDir/gradle/deploy-artifacts.gradle"
|
||||
|
||||
generatePom.enabled = false
|
||||
sonarqube.skipProject = true
|
||||
|
10
build.gradle
10
build.gradle
@ -12,6 +12,9 @@ buildscript {
|
||||
classpath('org.asciidoctor:asciidoctor-gradle-plugin:1.5.1')
|
||||
classpath("io.spring.gradle:docbook-reference-plugin:0.3.1")
|
||||
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.19.RELEASE")
|
||||
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.12.0"
|
||||
classpath 'org.hidetake:gradle-ssh-plugin:2.10.1'
|
||||
classpath 'io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.1'
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,6 +23,7 @@ plugins {
|
||||
}
|
||||
|
||||
apply plugin: 'base'
|
||||
apply from: "$rootDir/gradle/finalize-deploy.gradle"
|
||||
|
||||
description = 'Spring Security'
|
||||
|
||||
@ -86,7 +90,6 @@ configure(allprojects - javaProjects) {
|
||||
}
|
||||
|
||||
configure(subprojects - coreModuleProjects - project(':spring-security-samples-javaconfig-messages') - project(':spring-security-bom')) {
|
||||
tasks.findByPath("artifactoryPublish")?.enabled = false
|
||||
sonarqube {
|
||||
skipProject = true
|
||||
}
|
||||
@ -102,10 +105,13 @@ configure(javaProjects) {
|
||||
}
|
||||
apply from: "$rootDir/gradle/ide.gradle"
|
||||
apply from: "$rootDir/gradle/release-checks.gradle"
|
||||
apply from: "$rootDir/gradle/maven-deployment.gradle"
|
||||
}
|
||||
|
||||
configure(coreModuleProjects) {
|
||||
apply from: "$rootDir/gradle/maven-deployment.gradle"
|
||||
apply from: "$rootDir/gradle/artifactory.gradle"
|
||||
apply from: "$rootDir/gradle/ossrh.gradle"
|
||||
apply from: "$rootDir/gradle/deploy-artifacts.gradle"
|
||||
apply plugin: 'emma'
|
||||
apply plugin: 'spring-io'
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
// Docbook and Javadoc building and uploading tasks
|
||||
apply plugin: 'base'
|
||||
apply from: "$rootDir/gradle/deploy-docs.gradle"
|
||||
apply from: "$rootDir/gradle/deploy-schema.gradle"
|
||||
|
||||
task docs {
|
||||
dependsOn 'manual:reference', 'apidocs', 'guides:asciidoctor'
|
||||
@ -152,6 +154,7 @@ task schemaZip(type: Zip) {
|
||||
}
|
||||
assert xsdFile != null
|
||||
into (shortName) {
|
||||
duplicatesStrategy 'exclude'
|
||||
from xsdFile.path
|
||||
}
|
||||
}
|
||||
|
33
gradle/artifactory.gradle
Normal file
33
gradle/artifactory.gradle
Normal file
@ -0,0 +1,33 @@
|
||||
apply plugin: "com.jfrog.artifactory"
|
||||
|
||||
def isSnapshot = version?.matches(/^.*[.-]BUILD-SNAPSHOT$/)
|
||||
|
||||
artifactory {
|
||||
contextUrl = 'https://repo.spring.io'
|
||||
publish {
|
||||
repository {
|
||||
repoKey = isSnapshot ? 'libs-snapshot-local' : 'libs-release-local'
|
||||
if(project.hasProperty('artifactoryUsername')) {
|
||||
username = artifactoryUsername
|
||||
password = artifactoryPassword
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
artifactoryPublish {
|
||||
publishConfigs 'archives'
|
||||
publishIvy false
|
||||
properties = [
|
||||
'bintray.package': "${project.group}:spring-security",
|
||||
'bintray.version': "${project.version}"
|
||||
]
|
||||
}
|
||||
|
||||
artifactory {
|
||||
publish {
|
||||
defaults {
|
||||
publishConfigs('archives')
|
||||
}
|
||||
}
|
||||
}
|
11
gradle/deploy-artifacts.gradle
Normal file
11
gradle/deploy-artifacts.gradle
Normal file
@ -0,0 +1,11 @@
|
||||
def isSnapshot = version?.matches(/^.*[.-]BUILD-SNAPSHOT$/)
|
||||
|
||||
task deployArtifacts {
|
||||
group = 'Deploy tasks'
|
||||
description = "Deploys the artifacts to either Artifactory or Maven Central"
|
||||
if(isSnapshot) {
|
||||
dependsOn "artifactoryPublish"
|
||||
} else {
|
||||
dependsOn "uploadArchives"
|
||||
}
|
||||
}
|
46
gradle/deploy-docs.gradle
Normal file
46
gradle/deploy-docs.gradle
Normal file
@ -0,0 +1,46 @@
|
||||
apply plugin: 'org.hidetake.ssh'
|
||||
|
||||
project.ssh.settings {
|
||||
knownHosts = allowAnyHosts
|
||||
}
|
||||
|
||||
project.remotes {
|
||||
docs {
|
||||
role 'docs'
|
||||
host = 'docs.af.pivotal.io'
|
||||
user = project.findProperty('deployDocsSshUsername')
|
||||
if(project.hasProperty('deployDocsSshKeyPath')) {
|
||||
identity = project.file(project.findProperty('deployDocsSshKeyPath'))
|
||||
}
|
||||
if(project.hasProperty('deployDocsSshPassphrase')) {
|
||||
passphrase = project.findProperty('deployDocsSshPassphrase')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
project.task('deployDocs') {
|
||||
dependsOn 'docsZip'
|
||||
doFirst {
|
||||
project.ssh.run {
|
||||
session(project.remotes.docs) {
|
||||
def now = System.currentTimeMillis()
|
||||
def name = project.rootProject.name
|
||||
def version = project.rootProject.version
|
||||
def tempPath = "/tmp/${name}-${now}-docs".replaceAll(' ', '_')
|
||||
execute "mkdir -p $tempPath"
|
||||
|
||||
project.tasks.docsZip.outputs.each { o ->
|
||||
put from: o.files, into: tempPath
|
||||
}
|
||||
|
||||
execute "unzip $tempPath/*.zip -d $tempPath"
|
||||
|
||||
def extractPath = "/var/www/domains/springsource.org/www/htdocs/autorepo/docs/${name}/${version}/"
|
||||
|
||||
execute "rm -rf $extractPath"
|
||||
execute "mkdir -p $extractPath"
|
||||
execute "mv $tempPath/* $extractPath"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
50
gradle/deploy-schema.gradle
Normal file
50
gradle/deploy-schema.gradle
Normal file
@ -0,0 +1,50 @@
|
||||
apply plugin: 'org.hidetake.ssh'
|
||||
|
||||
project.ssh.settings {
|
||||
knownHosts = allowAnyHosts
|
||||
}
|
||||
|
||||
project.remotes {
|
||||
docs {
|
||||
role 'docs'
|
||||
host = 'docs.af.pivotal.io'
|
||||
user = project.findProperty('deployDocsSshUsername')
|
||||
if(project.hasProperty('deployDocsSshKeyPath')) {
|
||||
identity = project.file(project.findProperty('deployDocsSshKeyPath'))
|
||||
}
|
||||
if(project.hasProperty('deployDocsSshPassphrase')) {
|
||||
passphrase = project.findProperty('deployDocsSshPassphrase')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
project.task('deploySchema') {
|
||||
dependsOn 'schemaZip'
|
||||
doFirst {
|
||||
project.ssh.run {
|
||||
session(project.remotes.docs) {
|
||||
def now = System.currentTimeMillis()
|
||||
def name = project.rootProject.name
|
||||
def version = project.rootProject.version
|
||||
def tempPath = "/tmp/${name}-${now}-schema".replaceAll(' ', '_')
|
||||
|
||||
execute "mkdir -p $tempPath"
|
||||
|
||||
project.tasks.schemaZip.outputs.each { o ->
|
||||
println "Putting $o.files"
|
||||
put from: o.files, into: tempPath
|
||||
}
|
||||
|
||||
execute "unzip $tempPath/*.zip -d $tempPath"
|
||||
|
||||
def extractPath = "/var/www/domains/springsource.org/www/htdocs/autorepo/schema/${name}/${version}/"
|
||||
|
||||
execute "rm -rf $extractPath"
|
||||
execute "mkdir -p $extractPath"
|
||||
execute "rm -f $tempPath*.zip"
|
||||
execute "rm -rf $extractPath*"
|
||||
execute "mv $tempPath/* $extractPath"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13
gradle/finalize-deploy.gradle
Normal file
13
gradle/finalize-deploy.gradle
Normal file
@ -0,0 +1,13 @@
|
||||
def isSnapshot = version?.matches(/^.*[.-]BUILD-SNAPSHOT$/)
|
||||
def isRelease = !isSnapshot
|
||||
|
||||
task finalizeDeployArtifacts {
|
||||
}
|
||||
|
||||
if (isRelease && project.hasProperty("ossrhUsername")) {
|
||||
project.ext.nexusUsername = project.ossrhUsername
|
||||
project.ext.nexusPassword = project.ossrhPassword
|
||||
project.getPluginManager().apply("io.codearte.nexus-staging")
|
||||
finalizeDeployArtifacts.dependsOn project.tasks.closeAndReleaseRepository
|
||||
project.nexusStaging.packageGroup = 'org.springframework'
|
||||
}
|
45
gradle/ossrh.gradle
Normal file
45
gradle/ossrh.gradle
Normal file
@ -0,0 +1,45 @@
|
||||
def isSnapshot = version?.matches(/^.*[.-]BUILD-SNAPSHOT$/)
|
||||
def isRelease = !isSnapshot
|
||||
|
||||
if(project.hasProperty("signing.keyId") && isRelease) {
|
||||
sign(project)
|
||||
}
|
||||
|
||||
if(project.hasProperty('ossrhUsername')) {
|
||||
uploadArchives {
|
||||
repositories {
|
||||
mavenDeployer {
|
||||
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
|
||||
authentication(userName: project.ossrhUsername, password: project.ossrhPassword)
|
||||
}
|
||||
|
||||
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
|
||||
authentication(userName: project.ossrhUsername, password: project.ossrhPassword)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def sign(Project project) {
|
||||
project.install {
|
||||
repositories {
|
||||
mavenDeployer {
|
||||
beforeDeployment { MavenDeployment deployment -> project.signing.signPom(deployment) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
project.uploadArchives {
|
||||
repositories {
|
||||
mavenDeployer {
|
||||
beforeDeployment { MavenDeployment deployment -> project.signing.signPom(deployment) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
project.signing {
|
||||
required { project.gradle.taskGraph.hasTask("uploadArchives") }
|
||||
sign project.configurations.archives
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user