Skip to content

Commit c55785f

Browse files
Add Reusable Workflows
Closes gh-2712
1 parent 053347a commit c55785f

File tree

3 files changed

+69
-89
lines changed

3 files changed

+69
-89
lines changed

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

Lines changed: 32 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -8,99 +8,42 @@ on:
88
- cron: '0 10 * * *' # Once per day at 10am UTC
99
workflow_dispatch: # Manual trigger
1010

11-
env:
12-
GRADLE_ENTERPRISE_CACHE_USER: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
13-
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
14-
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
15-
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
16-
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
17-
1811
jobs:
1912
build:
2013
name: Build
21-
runs-on: ubuntu-latest
22-
if: github.repository == 'spring-projects/spring-session'
14+
uses: spring-io/spring-security-release-tools/.github/workflows/build.yml@v1
2315
strategy:
2416
matrix:
25-
jdk: [17]
26-
fail-fast: false
27-
steps:
28-
- uses: actions/checkout@v4
29-
- name: Set up JDK ${{ matrix.jdk }}
30-
uses: actions/setup-java@v4
31-
with:
32-
java-version: ${{ matrix.jdk }}
33-
distribution: 'temurin'
34-
cache: 'gradle'
35-
- name: Setup gradle user name
36-
run: |
37-
mkdir -p ~/.gradle
38-
echo 'systemProp.user.name=spring-builds+github' >> ~/.gradle/gradle.properties
39-
- name: Cache Gradle packages
40-
uses: actions/cache@v3
41-
with:
42-
path: ~/.gradle/caches
43-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
44-
- name: Build with Gradle
45-
run: |
46-
export GRADLE_ENTERPRISE_CACHE_USERNAME="$GRADLE_ENTERPRISE_CACHE_USER"
47-
export GRADLE_ENTERPRISE_CACHE_PASSWORD="$GRADLE_ENTERPRISE_CACHE_PASSWORD"
48-
export GRADLE_ENTERPRISE_ACCESS_KEY="$GRADLE_ENTERPRISE_SECRET_ACCESS_KEY"
49-
./gradlew clean build -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" --no-daemon --stacktrace
50-
artifacts:
17+
os: [ ubuntu-latest ]
18+
jdk: [ 17 ]
19+
with:
20+
runs-on: ${{ matrix.os }}
21+
java-version: ${{ matrix.jdk }}
22+
distribution: temurin
23+
secrets: inherit
24+
deploy-artifacts:
5125
name: Deploy Artifacts
52-
needs: [build]
53-
runs-on: ubuntu-latest
54-
if: github.repository == 'spring-projects/spring-session'
55-
steps:
56-
- uses: actions/checkout@v4
57-
- name: Set up JDK
58-
uses: actions/setup-java@v4
59-
with:
60-
java-version: '17'
61-
distribution: 'temurin'
62-
cache: 'gradle'
63-
- name: Setup gradle user name
64-
run: |
65-
mkdir -p ~/.gradle
66-
echo 'systemProp.user.name=spring-builds+github' >> ~/.gradle/gradle.properties
67-
- name: Deploy artifacts
68-
run: |
69-
export GRADLE_ENTERPRISE_CACHE_USERNAME="$GRADLE_ENTERPRISE_CACHE_USER"
70-
export GRADLE_ENTERPRISE_CACHE_PASSWORD="$GRADLE_ENTERPRISE_CACHE_PASSWORD"
71-
export GRADLE_ENTERPRISE_ACCESS_KEY="$GRADLE_ENTERPRISE_SECRET_ACCESS_KEY"
72-
./gradlew publishArtifacts finalizeDeployArtifacts -PossrhUsername="$OSSRH_TOKEN_USERNAME" -PossrhPassword="$OSSRH_TOKEN_PASSWORD" -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD" --stacktrace
73-
env:
74-
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }}
75-
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }}
76-
OSSRH_TOKEN_USERNAME: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
77-
OSSRH_TOKEN_PASSWORD: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
78-
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
79-
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
80-
docs:
26+
needs: [ build ]
27+
uses: spring-io/spring-security-release-tools/.github/workflows/deploy-artifacts.yml@v1
28+
with:
29+
should-deploy-artifacts: ${{ needs.build.outputs.should-deploy-artifacts }}
30+
secrets: inherit
31+
deploy-docs:
8132
name: Deploy Docs
82-
needs: [build]
83-
runs-on: ubuntu-latest
84-
if: github.repository == 'spring-projects/spring-session'
85-
steps:
86-
- uses: actions/checkout@v4
87-
- name: Set up JDK
88-
uses: actions/setup-java@v4
89-
with:
90-
java-version: '17'
91-
distribution: 'temurin'
92-
cache: 'gradle'
93-
- name: Setup gradle user name
94-
run: |
95-
mkdir -p ~/.gradle
96-
echo 'systemProp.user.name=spring-builds+github' >> ~/.gradle/gradle.properties
97-
- name: Deploy Docs
98-
run: |
99-
export GRADLE_ENTERPRISE_CACHE_USERNAME="$GRADLE_ENTERPRISE_CACHE_USER"
100-
export GRADLE_ENTERPRISE_CACHE_PASSWORD="$GRADLE_ENTERPRISE_CACHE_PASSWORD"
101-
export GRADLE_ENTERPRISE_ACCESS_KEY="$GRADLE_ENTERPRISE_SECRET_ACCESS_KEY"
102-
./gradlew deployDocs --no-daemon -PdeployDocsSshKey="$DOCS_SSH_KEY" -PdeployDocsSshUsername="$DOCS_USERNAME" -PdeployDocsHost="$DOCS_HOST" --stacktrace
103-
env:
104-
DOCS_USERNAME: ${{ secrets.DOCS_USERNAME }}
105-
DOCS_SSH_KEY: ${{ secrets.DOCS_SSH_KEY }}
106-
DOCS_HOST: ${{ secrets.DOCS_HOST }}
33+
needs: [ build ]
34+
uses: spring-io/spring-security-release-tools/.github/workflows/deploy-docs.yml@v1
35+
with:
36+
should-deploy-docs: ${{ needs.build.outputs.should-deploy-artifacts }}
37+
secrets: inherit
38+
perform-release:
39+
name: Perform Release
40+
needs: [ deploy-artifacts, deploy-docs ]
41+
uses: spring-io/spring-security-release-tools/.github/workflows/perform-release.yml@v1
42+
with:
43+
should-perform-release: ${{ needs.deploy-artifacts.outputs.artifacts-deployed }}
44+
project-version: ${{ needs.deploy-artifacts.outputs.project-version }}
45+
milestone-repo-url: https://repo.spring.io/artifactory/milestone
46+
release-repo-url: https://repo1.maven.org/maven2
47+
artifact-path: org/springframework/session/spring-session-core
48+
slack-announcing-id: spring-session-announcing
49+
secrets: inherit
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Release Scheduler
2+
3+
on:
4+
schedule:
5+
- cron: '15 13 * * TUE' # Every Tuesday at 13:15pm UTC
6+
workflow_dispatch:
7+
8+
permissions: read-all
9+
10+
jobs:
11+
dispatch_scheduled_releases:
12+
name: Dispatch scheduled releases
13+
if: ${{ github.repository_owner == 'spring-projects' }}
14+
strategy:
15+
matrix:
16+
# List of active maintenance branches.
17+
branch: [ main, 3.2.x, 3.1.x ]
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v3
22+
with:
23+
fetch-depth: 1
24+
- name: Dispatch
25+
env:
26+
GH_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
27+
run: gh workflow run update-scheduled-release-version.yml -r ${{ matrix.branch }}
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)