Skip to content

Commit e372bc7

Browse files
author
Steve Riesenberg
committed
Use reusable workflows with release automation
Issue gh-1427
1 parent c7afe53 commit e372bc7

File tree

2 files changed

+47
-100
lines changed

2 files changed

+47
-100
lines changed

.github/workflows/continuous-integration-workflow.yml

Lines changed: 37 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -6,113 +6,50 @@ on:
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

1311
jobs:
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
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: Update Scheduled Release Version
2+
3+
on:
4+
workflow_dispatch: # Manual trigger only. Triggered by release-scheduler.yml on main.
5+
6+
jobs:
7+
update-scheduled-release-version:
8+
name: Update Scheduled Release Version
9+
uses: spring-io/spring-security-release-tools/.github/workflows/update-scheduled-release-version.yml@v1
10+
secrets: inherit

0 commit comments

Comments
 (0)