66 - ' **'
77 schedule :
88 - cron : ' 0 10 * * *' # Once per day at 10am UTC
9-
10- env :
11- RUN_JOBS : ${{ github.repository == 'spring-projects/spring-authorization-server' }}
9+ workflow_dispatch :
1210
1311jobs :
14- prerequisites :
15- name : Pre-requisites for building
16- runs-on : ubuntu-latest
17- outputs :
18- runjobs : ${{ steps.continue.outputs.runjobs }}
19- project_version : ${{ steps.continue.outputs.project_version }}
20- steps :
21- - uses : actions/checkout@v3
22- - id : continue
23- name : Determine if should continue
24- if : env.RUN_JOBS == 'true'
25- run : |
26- # Run jobs if in upstream repository
27- echo "runjobs=true" >> $GITHUB_OUTPUT
28- # Extract version from gradle.properties
29- version=$(cat gradle.properties | grep "version=" | awk -F'=' '{print $2}')
30- echo "project_version=$version" >> $GITHUB_OUTPUT
3112 build :
3213 name : Build
33- needs : [prerequisites]
14+ uses : spring-io/spring-security-release-tools/.github/workflows/build.yml@v1
3415 strategy :
3516 matrix :
3617 os : [ubuntu-latest, windows-latest]
3718 jdk : [17]
38- fail-fast : false
39- runs-on : ${{ matrix.os }}
40- if : needs.prerequisites.outputs.runjobs
41- steps :
42- - uses : actions/checkout@v3
43- - name : Set up JDK ${{ matrix.jdk }}
44- uses : spring-io/spring-gradle-build-action@v2
45- with :
46- java-version : ${{ matrix.jdk }}
47- distribution : temurin
48- - name : Build with Gradle
49- env :
50- GRADLE_ENTERPRISE_CACHE_USERNAME : ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
51- GRADLE_ENTERPRISE_CACHE_PASSWORD : ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
52- GRADLE_ENTERPRISE_ACCESS_KEY : ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
53- ARTIFACTORY_USERNAME : ${{ secrets.ARTIFACTORY_USERNAME }}
54- ARTIFACTORY_PASSWORD : ${{ secrets.ARTIFACTORY_PASSWORD }}
55- run : ./gradlew clean build --continue -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD"
56- snapshot_tests :
57- name : Test against snapshots
58- needs : [prerequisites]
59- runs-on : ubuntu-latest
60- if : needs.prerequisites.outputs.runjobs
61- steps :
62- - uses : actions/checkout@v3
63- - name : Set up JDK
64- uses : spring-io/spring-gradle-build-action@v2
65- with :
66- java-version : 17
67- distribution : temurin
68- - name : Snapshot Tests
69- env :
70- GRADLE_ENTERPRISE_CACHE_USERNAME : ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
71- GRADLE_ENTERPRISE_CACHE_PASSWORD : ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
72- GRADLE_ENTERPRISE_ACCESS_KEY : ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
73- ARTIFACTORY_USERNAME : ${{ secrets.ARTIFACTORY_USERNAME }}
74- ARTIFACTORY_PASSWORD : ${{ secrets.ARTIFACTORY_PASSWORD }}
75- run : ./gradlew test --refresh-dependencies -Duser.name=spring-builds+github -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" -PforceMavenRepositories=snapshot -PspringFrameworkVersion='6.0.+' -PspringSecurityVersion='6.0.+' -PlocksDisabled --stacktrace
76- deploy_artifacts :
19+ with :
20+ runs-on : ${{ matrix.os }}
21+ java-version : ${{ matrix.jdk }}
22+ distribution : temurin
23+ secrets : inherit
24+ test :
25+ name : Test Against Snapshots
26+ uses : spring-io/spring-security-release-tools/.github/workflows/test.yml@v1
27+ with :
28+ test-args : --refresh-dependencies --stacktrace -PforceMavenRepositories=snapshot -PspringFrameworkVersion=6.0.+ -PspringSecurityVersion=6.0.+
29+ secrets : inherit
30+ deploy-artifacts :
7731 name : Deploy Artifacts
78- needs : [build, snapshot_tests]
79- runs-on : ubuntu-latest
80- steps :
81- - uses : actions/checkout@v3
82- - name : Set up JDK
83- uses : spring-io/spring-gradle-build-action@v2
84- with :
85- java-version : 17
86- distribution : temurin
87- - name : Deploy Artifacts
88- env :
89- GRADLE_ENTERPRISE_CACHE_USERNAME : ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
90- GRADLE_ENTERPRISE_CACHE_PASSWORD : ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
91- GRADLE_ENTERPRISE_ACCESS_KEY : ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
92- ORG_GRADLE_PROJECT_signingKey : ${{ secrets.GPG_PRIVATE_KEY }}
93- ORG_GRADLE_PROJECT_signingPassword : ${{ secrets.GPG_PASSPHRASE }}
94- OSSRH_TOKEN_USERNAME : ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
95- OSSRH_TOKEN_PASSWORD : ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
96- ARTIFACTORY_USERNAME : ${{ secrets.ARTIFACTORY_USERNAME }}
97- ARTIFACTORY_PASSWORD : ${{ secrets.ARTIFACTORY_PASSWORD }}
98- run : ./gradlew publishArtifacts finalizeDeployArtifacts -Duser.name=spring-builds+github -PossrhUsername="$OSSRH_TOKEN_USERNAME" -PossrhPassword="$OSSRH_TOKEN_PASSWORD" -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" --stacktrace
99- deploy_docs :
32+ needs : [build, test]
33+ uses : spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml@v1
34+ with :
35+ should-deploy-artifacts : ${{ needs.build.outputs.should-deploy-artifacts }}
36+ secrets : inherit
37+ deploy-docs :
10038 name : Deploy Docs
101- needs : [build, snapshot_tests]
102- runs-on : ubuntu-latest
103- steps :
104- - uses : actions/checkout@v3
105- - name : Set up JDK
106- uses : spring-io/spring-gradle-build-action@v2
107- with :
108- java-version : 17
109- distribution : temurin
110- - name : Deploy Docs
111- env :
112- GRADLE_ENTERPRISE_CACHE_USERNAME : ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
113- GRADLE_ENTERPRISE_CACHE_PASSWORD : ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
114- GRADLE_ENTERPRISE_ACCESS_KEY : ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
115- DOCS_USERNAME : ${{ secrets.DOCS_USERNAME }}
116- DOCS_SSH_KEY : ${{ secrets.DOCS_SSH_KEY }}
117- DOCS_HOST : ${{ secrets.DOCS_HOST }}
118- run : ./gradlew deployDocs -Duser.name=spring-builds+github -PdeployDocsSshKey="$DOCS_SSH_KEY" -PdeployDocsSshUsername="$DOCS_USERNAME" -PdeployDocsHost="$DOCS_HOST" --stacktrace
39+ needs : [build, test]
40+ uses : spring-io/spring-security-release-tools/.github/workflows/deploy-docs.yml@v1
41+ with :
42+ should-deploy-docs : ${{ needs.build.outputs.should-deploy-artifacts }}
43+ secrets : inherit
44+ perform-release :
45+ name : Perform Release
46+ needs : [deploy-artifacts, deploy-docs]
47+ uses : spring-io/spring-security-release-tools/.github/workflows/perform-release.yml@v1
48+ with :
49+ should-perform-release : ${{ needs.deploy-artifacts.outputs.artifacts-deployed }}
50+ project-version : ${{ needs.deploy-artifacts.outputs.project-version }}
51+ milestone-repo-url : https://repo.spring.io/artifactory/milestone
52+ release-repo-url : https://repo1.maven.org/maven2
53+ artifact-path : org/springframework/security/spring-security-oauth2-authorization-server
54+ slack-announcing-id : spring-authorization-server-announcing
55+ secrets : inherit
0 commit comments