-
Notifications
You must be signed in to change notification settings - Fork 314
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Closes gh-1461
- Loading branch information
Showing
13 changed files
with
453 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
name: Await HTTP Resource | ||
description: 'Waits for an HTTP resource to be available (a HEAD request succeeds)' | ||
inputs: | ||
url: | ||
description: 'URL of the resource to await' | ||
required: true | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Await HTTP resource | ||
shell: bash | ||
run: | | ||
url=${{ inputs.url }} | ||
echo "Waiting for $url" | ||
until curl --fail --head --silent ${{ inputs.url }} > /dev/null | ||
do | ||
echo "." | ||
sleep 60 | ||
done | ||
echo "$url is available" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: 'Build' | ||
description: 'Builds the project, optionally publishing it to a local deployment repository' | ||
inputs: | ||
develocity-access-key: | ||
description: 'Access key for authentication with ge.spring.io' | ||
required: false | ||
java-distribution: | ||
description: 'Java distribution to use' | ||
required: false | ||
default: 'liberica' | ||
java-early-access: | ||
description: 'Whether the Java version is in early access' | ||
required: false | ||
default: 'false' | ||
java-toolchain: | ||
description: 'Whether a Java toolchain should be used' | ||
required: false | ||
default: 'false' | ||
java-version: | ||
description: 'Java version to compile and test with' | ||
required: false | ||
default: '17' | ||
publish: | ||
description: 'Whether to publish artifacts ready for deployment to Artifactory' | ||
required: false | ||
default: 'false' | ||
outputs: | ||
build-scan-url: | ||
description: 'URL, if any, of the build scan produced by the build' | ||
value: ${{ (inputs.publish == 'true' && steps.publish.outputs.build-scan-url) || steps.build.outputs.build-scan-url }} | ||
version: | ||
description: 'Version that was built' | ||
value: ${{ steps.read-version.outputs.version }} | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Prepare Gradle Build | ||
uses: ./.github/actions/prepare-gradle-build | ||
with: | ||
develocity-access-key: ${{ inputs.develocity-access-key }} | ||
java-distribution: ${{ inputs.java-distribution }} | ||
java-early-access: ${{ inputs.java-early-access }} | ||
java-toolchain: ${{ inputs.java-toolchain }} | ||
java-version: ${{ inputs.java-version }} | ||
- name: Build | ||
id: build | ||
if: ${{ inputs.publish == 'false' }} | ||
shell: bash | ||
run: ./gradlew check | ||
- name: Publish | ||
id: publish | ||
if: ${{ inputs.publish == 'true' }} | ||
shell: bash | ||
run: ./gradlew -PdeploymentRepository=$(pwd)/deployment-repository build publishAllPublicationsToDeploymentRepository | ||
- name: Read Version From gradle.properties | ||
id: read-version | ||
shell: bash | ||
run: | | ||
version=$(sed -n 's/version=\(.*\)/\1/p' gradle.properties) | ||
echo "Version is $version" | ||
echo "version=$version" >> $GITHUB_OUTPUT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
name: Create GitHub Release | ||
description: 'Create the release on GitHub with a changelog' | ||
inputs: | ||
milestone: | ||
description: 'Name of the GitHub milestone for which a release will be created' | ||
required: true | ||
pre-release: | ||
description: 'Whether the release is a pre-release (a milestone or release candidate)' | ||
required: false | ||
default: 'false' | ||
token: | ||
description: 'Token to use for authentication with GitHub' | ||
required: true | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Generate Changelog | ||
uses: spring-io/github-changelog-generator@185319ad7eaa75b0e8e72e4b6db19c8b2cb8c4c1 #v0.0.11 | ||
with: | ||
config-file: .github/actions/create-github-release/changelog-generator.yml | ||
milestone: ${{ inputs.milestone }} | ||
token: ${{ inputs.token }} | ||
- name: Create GitHub Release | ||
shell: bash | ||
env: | ||
GITHUB_TOKEN: ${{ inputs.token }} | ||
run: gh release create ${{ format('v{0}', inputs.milestone) }} --notes-file changelog.md ${{ inputs.pre-release == 'true' && '--prerelease' || '' }} |
22 changes: 22 additions & 0 deletions
22
.github/actions/create-github-release/changelog-generator.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
changelog: | ||
repository: spring-projects/spring-ws | ||
sections: | ||
- title: ":star: New Features" | ||
labels: | ||
- "type: enhancement" | ||
- title: ":lady_beetle: Bug Fixes" | ||
labels: | ||
- "type: bug" | ||
- "type: regression" | ||
- title: ":notebook_with_decorative_cover: Documentation" | ||
labels: | ||
- "type: documentation" | ||
- title: ":hammer: Dependency Upgrades" | ||
sort: "title" | ||
labels: | ||
- "type: dependency-upgrade" | ||
contributors: | ||
exclude: | ||
names: | ||
- "snicoll" | ||
- "wilkinsona" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
name: Prepare Gradle Build | ||
description: 'Prepares a Gradle build. Sets up Java and Gradle and configures Gradle properties' | ||
inputs: | ||
develocity-access-key: | ||
description: 'Access key for authentication with ge.spring.io' | ||
required: false | ||
java-distribution: | ||
description: 'Java distribution to use' | ||
required: false | ||
default: 'liberica' | ||
java-early-access: | ||
description: 'Whether the Java version is in early access. When true, forces java-distribution to temurin' | ||
required: false | ||
default: 'false' | ||
java-toolchain: | ||
description: 'Whether a Java toolchain should be used' | ||
required: false | ||
default: 'false' | ||
java-version: | ||
description: 'Java version to use for the build' | ||
required: false | ||
default: '17' | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Set Up Java | ||
uses: actions/setup-java@v4 | ||
with: | ||
distribution: ${{ inputs.java-early-access == 'true' && 'temurin' || (inputs.java-distribution || 'liberica') }} | ||
java-version: | | ||
${{ inputs.java-early-access == 'true' && format('{0}-ea', inputs.java-version) || inputs.java-version }} | ||
${{ inputs.java-toolchain == 'true' && '17' || '' }} | ||
- name: Set Up Gradle | ||
uses: gradle/actions/setup-gradle@0bdd871935719febd78681f197cd39af5b6e16a6 # v4.2.2 | ||
with: | ||
cache-read-only: false | ||
develocity-access-key: ${{ inputs.develocity-access-key }} | ||
develocity-token-expiry: 4 | ||
- name: Configure Gradle Properties | ||
shell: bash | ||
run: | | ||
mkdir -p $HOME/.gradle | ||
echo 'systemProp.user.name=spring-builds+github' >> $HOME/.gradle/gradle.properties | ||
echo 'systemProp.org.gradle.internal.launcher.welcomeMessageEnabled=false' >> $HOME/.gradle/gradle.properties | ||
echo 'org.gradle.daemon=false' >> $HOME/.gradle/gradle.properties | ||
echo 'org.gradle.daemon=4' >> $HOME/.gradle/gradle.properties | ||
- name: Configure Toolchain Properties | ||
if: ${{ inputs.java-toolchain == 'true' }} | ||
shell: bash | ||
run: | | ||
echo toolchainVersion=${{ inputs.java-version }} >> $HOME/.gradle/gradle.properties | ||
echo systemProp.org.gradle.java.installations.auto-detect=false >> $HOME/.gradle/gradle.properties | ||
echo systemProp.org.gradle.java.installations.auto-download=false >> $HOME/.gradle/gradle.properties | ||
echo systemProp.org.gradle.java.installations.paths=${{ format('$JAVA_HOME_{0}_X64', inputs.java-version) }} >> $HOME/.gradle/gradle.properties |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
name: Print JVM thread dumps | ||
description: 'Prints a thread dump for all running JVMs' | ||
runs: | ||
using: composite | ||
steps: | ||
- if: ${{ runner.os == 'Linux' }} | ||
shell: bash | ||
run: | | ||
for jvm_pid in $(jps -q -J-XX:+PerfDisableSharedMem); do | ||
jcmd $jvm_pid Thread.print | ||
done | ||
- if: ${{ runner.os == 'Windows' }} | ||
shell: powershell | ||
run: | | ||
foreach ($jvm_pid in $(jps -q -J-XX:+PerfDisableSharedMem)) { | ||
jcmd $jvm_pid Thread.print | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: Send Notification | ||
description: 'Sends a Google Chat message as a notification of the job''s outcome' | ||
inputs: | ||
build-scan-url: | ||
description: 'URL of the build scan to include in the notification' | ||
required: false | ||
run-name: | ||
description: 'Name of the run to include in the notification' | ||
required: false | ||
default: ${{ format('{0} {1}', github.ref_name, github.job) }} | ||
status: | ||
description: 'Status of the job' | ||
required: true | ||
webhook-url: | ||
description: 'Google Chat Webhook URL' | ||
required: true | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Prepare Variables | ||
shell: bash | ||
run: | | ||
echo "BUILD_SCAN=${{ inputs.build-scan-url == '' && ' [build scan unavailable]' || format(' [<{0}|Build Scan>]', inputs.build-scan-url) }}" >> "$GITHUB_ENV" | ||
echo "RUN_URL=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" >> "$GITHUB_ENV" | ||
- name: Success Notification | ||
if: ${{ inputs.status == 'success' }} | ||
shell: bash | ||
run: | | ||
curl -X POST '${{ inputs.webhook-url }}' -H 'Content-Type: application/json' -d '{ text: "<${{ env.RUN_URL }}|${{ inputs.run-name }}> was successful ${{ env.BUILD_SCAN }}"}' || true | ||
- name: Failure Notification | ||
if: ${{ inputs.status == 'failure' }} | ||
shell: bash | ||
run: | | ||
curl -X POST '${{ inputs.webhook-url }}' -H 'Content-Type: application/json' -d '{ text: "<users/all> *<${{ env.RUN_URL }}|${{ inputs.run-name }}> failed* ${{ env.BUILD_SCAN }}"}' || true | ||
- name: Cancel Notification | ||
if: ${{ inputs.status == 'cancelled' }} | ||
shell: bash | ||
run: | | ||
curl -X POST '${{ inputs.webhook-url }}' -H 'Content-Type: application/json' -d '{ text: "<${{ env.RUN_URL }}|${{ inputs.run-name }}> was cancelled"}' || true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
name: Sync to Maven Central | ||
description: 'Syncs a release to Maven Central and waits for it to be available for use' | ||
inputs: | ||
jfrog-cli-config-token: | ||
description: 'Config token for the JFrog CLI' | ||
required: true | ||
ossrh-s01-staging-profile: | ||
description: 'Staging profile to use when syncing to Central' | ||
required: true | ||
ossrh-s01-token-password: | ||
description: 'Password for authentication with s01.oss.sonatype.org' | ||
required: true | ||
ossrh-s01-token-username: | ||
description: 'Username for authentication with s01.oss.sonatype.org' | ||
required: true | ||
spring-ws-version: | ||
description: 'Version of Spring Web Services that is being synced to Central' | ||
required: true | ||
runs: | ||
using: composite | ||
steps: | ||
- name: Set Up JFrog CLI | ||
uses: jfrog/setup-jfrog-cli@f748a0599171a192a2668afee8d0497f7c1069df # v4.5.6 | ||
env: | ||
JF_ENV_SPRING: ${{ inputs.jfrog-cli-config-token }} | ||
- name: Download Release Artifacts | ||
shell: bash | ||
run: jf rt download --spec ${{ format('{0}/artifacts.spec', github.action_path) }} --spec-vars 'buildName=${{ format('spring-ws-{0}', inputs.spring-ws-version) }};buildNumber=${{ github.run_number }}' | ||
- name: Sync | ||
uses: spring-io/nexus-sync-action@42477a2230a2f694f9eaa4643fa9e76b99b7ab84 # v0.0.1 | ||
with: | ||
close: true | ||
create: true | ||
generate-checksums: true | ||
password: ${{ inputs.ossrh-s01-token-password }} | ||
release: true | ||
staging-profile-name: ${{ inputs.ossrh-s01-staging-profile }} | ||
upload: true | ||
username: ${{ inputs.ossrh-s01-token-username }} | ||
- name: Await | ||
uses: ./.github/actions/await-http-resource | ||
with: | ||
url: ${{ format('https://repo.maven.apache.org/maven2/org/springframework/ws/spring-ws-core/{0}/spring-ws-core-{0}.jar', inputs.spring-ws-version) }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"files": [ | ||
{ | ||
"aql": { | ||
"items.find": { | ||
"$and": [ | ||
{ | ||
"@build.name": "${buildName}", | ||
"@build.number": "${buildNumber}", | ||
"path": { | ||
"$nmatch": "org/springframework/ws/spring-ws-docs/*" | ||
} | ||
} | ||
] | ||
} | ||
}, | ||
"target": "nexus/" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
name: Build and Deploy Snapshot | ||
on: | ||
push: | ||
branches: | ||
- main | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
jobs: | ||
build-and-deploy-snapshot: | ||
name: Build and Deploy Snapshot | ||
if: ${{ github.repository == 'spring-projects/spring-ws' }} | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 60 | ||
steps: | ||
- name: Check Out Code | ||
uses: actions/checkout@v4 | ||
- name: Build and Publish | ||
id: build-and-publish | ||
uses: ./.github/actions/build | ||
with: | ||
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }} | ||
publish: true | ||
- name: Deploy | ||
uses: spring-io/artifactory-deploy-action@dc1913008c0599f0c4b1fdafb6ff3c502b3565ea # v0.0.2 | ||
with: | ||
artifact-properties: | | ||
/**/spring-ws-docs-*.zip::zip.type=docs,zip.name=spring-ws,zip.deployed=false | ||
build-name: 'spring-ws-4.0.x' | ||
folder: 'deployment-repository' | ||
password: ${{ secrets.ARTIFACTORY_PASSWORD }} | ||
repository: 'libs-snapshot-local' | ||
signing-key: ${{ secrets.GPG_PRIVATE_KEY }} | ||
signing-passphrase: ${{ secrets.GPG_PASSPHRASE }} | ||
uri: 'https://repo.spring.io' | ||
username: ${{ secrets.ARTIFACTORY_USERNAME }} | ||
- name: Send Notification | ||
if: always() | ||
uses: ./.github/actions/send-notification | ||
with: | ||
build-scan-url: ${{ steps.build-and-publish.outputs.build-scan-url }} | ||
run-name: ${{ format('{0} | Linux | Java 17', github.ref_name) }} | ||
status: ${{ job.status }} | ||
webhook-url: ${{ secrets.GOOGLE_CHAT_WEBHOOK_URL }} | ||
outputs: | ||
version: ${{ steps.build-and-publish.outputs.version }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
name: Build Pull Request | ||
on: pull_request | ||
permissions: | ||
contents: read | ||
jobs: | ||
build: | ||
name: Build Pull Request | ||
if: ${{ github.repository == 'spring-projects/spring-ws' }} | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 60 | ||
steps: | ||
- name: Check Out Code | ||
uses: actions/checkout@v4 | ||
- name: Build | ||
id: build | ||
uses: ./.github/actions/build | ||
- name: Print JVM Thread Dumps When Cancelled | ||
if: cancelled() | ||
uses: ./.github/actions/print-jvm-thread-dumps | ||
- name: Upload Build Reports | ||
if: failure() | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: build-reports | ||
path: '**/build/reports/' |
Oops, something went wrong.