Migrate 6.1.x to Commercial repository

This commit is contained in:
Artem Bilan
2024-05-23 11:29:26 -04:00
parent efe423e821
commit 8730bf597d
11 changed files with 276 additions and 26 deletions

119
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,119 @@
version: 2
registries:
spring-commercial:
type: maven-repository
url: https://repo.spring.vmware.com/artifactory/spring-commercial
username: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_USERNAME }}
password: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_PASSWORD }}
updates:
- package-ecosystem: gradle
directory: /
schedule:
interval: weekly
day: sunday
ignore:
- dependency-name: '*'
update-types:
- version-update:semver-major
- version-update:semver-minor
open-pull-requests-limit: 10
labels:
- 'type: dependency-upgrade'
groups:
development-dependencies:
update-types:
- patch
patterns:
- com.gradle.enterprise
- com.github.spotbugs
- io.spring.*
- org.ajoberstar.grgit
- org.antora
- io.micrometer:micrometer-docs-generator
- com.willowtreeapps.assertk:assertk-jvm
- org.jetbrains.dokka
- org.apache.activemq*
- org.aspectj*
- org.awaitility:awaitility
- org.apache.commons:commons-dbcp2
- org.apache.derby
- com.icegreen:greenmail
- org.hibernate.orm*
- org.testcontainers*
- org.hsqldb:hsqldb
- com.h2database:h2
- org.postgresql:postgresql
- mysql:mysql-connector-java
- com.oracle.database.jdbc:ojdbc11
- org.apache.tomcat.embed:tomcat-embed-websocket
- org.xmlunit:xmlunit-assertj3
- com.thoughtworks.xstream:xstream
- package-ecosystem: gradle
target-branch: 6.0.x
directory: /
schedule:
interval: monthly
registries:
- spring-commercial
ignore:
- dependency-name: '*'
update-types:
- version-update:semver-major
- version-update:semver-minor
open-pull-requests-limit: 10
labels:
- 'type: dependency-upgrade'
groups:
development-dependencies:
update-types:
- patch
patterns:
- com.gradle.enterprise
- com.github.spotbugs
- io.spring.*
- org.ajoberstar.grgit
- io.micrometer:micrometer-docs-generator
- com.willowtreeapps.assertk:assertk-jvm
- org.jetbrains.dokka
- org.apache.activemq*
- org.aspectj*
- org.awaitility:awaitility
- org.apache.commons:commons-dbcp2
- org.apache.derby
- com.icegreen:greenmail
- org.hibernate.orm*
- org.testcontainers*
- org.hsqldb:hsqldb
- com.h2database:h2
- org.postgresql:postgresql
- mysql:mysql-connector-java
- com.oracle.database.jdbc:ojdbc11
- org.apache.tomcat.embed:tomcat-embed-websocket
- org.xmlunit:xmlunit-assertj3
- com.thoughtworks.xstream:xstream
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
day: saturday
labels:
- 'type: task'
groups:
development-dependencies:
patterns:
- '*'
- package-ecosystem: github-actions
target-branch: 6.0.x
directory: /
schedule:
interval: monthly
labels:
- 'type: task'
groups:
development-dependencies:
patterns:
- '*'

View File

@@ -5,7 +5,6 @@ on:
push:
branches:
- main
- '*.x'
concurrency:
@@ -15,7 +14,10 @@ concurrency:
jobs:
build-snapshot:
uses: spring-io/spring-github-workflows/.github/workflows/spring-artifactory-gradle-snapshot.yml@main
with:
artifactoryUrl: https://repo.spring.vmware.com
targetRepository: spring-commercial-snapshot-local
artifactoryProjectKey: spring
secrets:
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
ARTIFACTORY_USERNAME: ${{ secrets.COMMERCIAL_ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.COMMERCIAL_ARTIFACTORY_PASSWORD }}

View File

@@ -0,0 +1,28 @@
name: Distribute Release to Spring Enterprise
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'The release version of the artifacts to distribute'
required: true
buildName:
description: 'The Artifactory Build Name'
required: true
buildNumber:
description: 'The Artifactory Build Number'
required: true
jobs:
distribute-release-to-spring-enterprise:
uses: spring-io/spring-github-workflows/.github/workflows/spring-enterprise-release-bundle.yml@main
with:
artifactoryUrl: https://usw1.packages.broadcom.com
bundleName: TNZ-${{ github.event.repository.name }}
releaseVersion: ${{ inputs.releaseVersion }}
buildName: ${{ inputs.buildName }}
buildNumber: ${{ inputs.buildNumber }}
secrets:
ARTIFACTORY_USERNAME: ${{ secrets.COMMERCIAL_ARTIFACTORY_USW1_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.COMMERCIAL_ARTIFACTORY_USW1_PASSWORD }}

View File

@@ -3,7 +3,6 @@ name: Merge Dependabot PR
on:
pull_request:
branches:
- main
- '*.x'
run-name: Merge Dependabot PR ${{ github.ref_name }}

View File

@@ -3,9 +3,11 @@ name: Pull Request Build
on:
pull_request:
branches:
- main
- '*.x'
jobs:
build-pull-request:
uses: spring-io/spring-github-workflows/.github/workflows/spring-gradle-pull-request-build.yml@main
secrets:
ARTIFACTORY_USERNAME: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_PASSWORD }}

View File

@@ -13,16 +13,16 @@ jobs:
issues: write
uses: spring-io/spring-github-workflows/.github/workflows/spring-artifactory-gradle-release.yml@main
with:
artifactoryUrl: https://repo.spring.vmware.com
stagingRepository: spring-commercial-staging-local
targetReleaseRepository: spring-commercial-release-local
artifactoryProjectKey: spring
secrets:
GH_ACTIONS_REPO_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
OSSRH_URL: ${{ secrets.OSSRH_URL }}
OSSRH_S01_TOKEN_USERNAME: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
OSSRH_S01_TOKEN_PASSWORD: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
OSSRH_STAGING_PROFILE_NAME: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }}
JF_ARTIFACTORY_SPRING: ${{ secrets.COMMERCIAL_JF_ARTIFACTORY_SPRING }}
ARTIFACTORY_USERNAME: ${{ secrets.COMMERCIAL_ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.COMMERCIAL_ARTIFACTORY_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
SPRING_RELEASE_SLACK_WEBHOOK_URL: ${{ secrets.SPRING_RELEASE_SLACK_WEBHOOK_URL }}

View File

@@ -9,9 +9,8 @@ on:
type: string
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
ARTIFACTORY_USERNAME: ${{ secrets.COMMERCIAL_ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.COMMERCIAL_ARTIFACTORY_PASSWORD }}
jobs:
verify-staged-with-samples:
@@ -33,7 +32,14 @@ jobs:
printf "allprojects {
repositories {
maven {
url 'https://repo.spring.io/libs-staging-local'
url 'https://repo.spring.vmware.com/artifactory/spring-commercial-staging-local'
credentials {
username = '$ARTIFACTORY_USERNAME'
password = '$ARTIFACTORY_PASSWORD'
}
}
maven {
url 'https://repo.spring.vmware.com/artifactory/spring-commercial'
credentials {
username = '$ARTIFACTORY_USERNAME'
password = '$ARTIFACTORY_PASSWORD'

View File

@@ -178,6 +178,10 @@ allprojects {
}
apply from: 'publish-maven.gradle'
apply from: 'commercial-settings.gradle'
apply from: 'docs.gradle'
configure(javaProjects) { subproject ->
apply plugin: 'java-library'
apply plugin: 'eclipse'
@@ -186,8 +190,6 @@ configure(javaProjects) { subproject ->
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply from: "${rootDir}/gradle/publish-maven.gradle"
sourceSets {
test {
resources {
@@ -1102,7 +1104,6 @@ project('spring-integration-bom') {
description = 'Spring Integration (Bill of Materials)'
apply plugin: 'java-platform'
apply from: "${rootDir}/gradle/publish-maven.gradle"
dependencies {
constraints {
@@ -1152,8 +1153,6 @@ dokkaHtmlMultiModule {
outputDirectory.set(file("$buildDir/kdoc"))
}
apply from: "${rootDir}/gradle/docs.gradle"
task schemaZip(type: Zip) {
group = 'Distribution'
archiveClassifier = 'schema'
@@ -1265,8 +1264,6 @@ task dist(dependsOn: assemble) {
description = 'Builds -dist, -docs and -schema distribution archives.'
}
apply from: "${rootDir}/gradle/publish-maven.gradle"
publishing {
publications {
mavenJava(MavenPublication) {
@@ -1275,4 +1272,4 @@ publishing {
artifact distZip
}
}
}
}

View File

@@ -0,0 +1,32 @@
def artifactoryUsername = System.getenv('ARTIFACTORY_USERNAME')
def artifactoryPassword = System.getenv('ARTIFACTORY_PASSWORD')
allprojects {
repositories {
if (isCI) {
maven {
url 'https://repo.spring.vmware.com/artifactory/spring-commercial'
credentials {
username = artifactoryUsername
password = artifactoryPassword
}
}
if (version.endsWith('SNAPSHOT')) {
maven {
url 'https://repo.spring.vmware.com/artifactory/spring-commercial-snapshot-local'
credentials {
username = artifactoryUsername
password = artifactoryPassword
}
}
}
} else {
maven { url 'https://repo.spring.io/spring-commercial-remote' }
if (version.endsWith('SNAPSHOT')) {
maven { url 'https://repo.spring.io/spring-commercial-snapshot-remote' }
}
}
}
}

65
publish-maven.gradle Normal file
View File

@@ -0,0 +1,65 @@
allprojects {
apply plugin: 'maven-publish'
publishing {
publications {
mavenJava(MavenPublication) {
pom {
afterEvaluate {
name = project.description
description = project.description
}
url = linkScmUrl
organization {
name = 'Spring IO'
url = 'https://spring.io/projects/spring-integration'
}
licenses {
license {
name = 'Apache License, Version 2.0'
url = 'https://www.apache.org/licenses/LICENSE-2.0.txt'
distribution = 'repo'
}
}
scm {
url = linkScmUrl
connection = linkScmConnection
developerConnection = linkScmDevConnection
}
developers {
developer {
id = 'artembilan'
name = 'Artem Bilan'
email = 'artem.bilan@broadcom.com'
roles = ['project lead']
}
developer {
id = 'garyrussell'
name = 'Gary Russell'
email = 'github@gprussell.net'
roles = ['project lead emeritus']
}
developer {
id = 'markfisher'
name = 'Mark Fisher'
email = 'mark.ryan.fisher@gmail.com'
roles = ['project founder and lead emeritus']
}
}
issueManagement {
system = 'GitHub'
url = linkIssue
}
}
versionMapping {
usage('java-api') {
fromResolutionResult()
}
usage('java-runtime') {
fromResolutionResult()
}
}
}
}
}
}