Skip to content

Commit e7575f5

Browse files
committed
Add release milestone workflow
Closes gh-1830
1 parent b08c2c3 commit e7575f5

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Release Milestone
2+
on:
3+
push:
4+
tags:
5+
- v4.0.0-M[1-9]
6+
- v4.0.0-RC[1-9]
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
jobs:
10+
build-and-stage-release:
11+
name: Build and Stage Release
12+
if: ${{ github.repository == 'spring-projects/spring-webflow' }}
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Check Out Code
16+
uses: actions/checkout@v5
17+
- name: Build and Publish
18+
id: build-and-publish
19+
uses: ./.github/actions/build
20+
with:
21+
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
22+
opensource-repository-password: ${{ secrets.ARTIFACTORY_PASSWORD }}
23+
opensource-repository-username: ${{ secrets.ARTIFACTORY_USERNAME }}
24+
publish: true
25+
- name: Stage Release
26+
uses: spring-io/artifactory-deploy-action@926d7f7cc810569395346bf3a4d91b380b3e355b # v0.0.4
27+
with:
28+
artifact-properties: |
29+
/**/webflow-*.zip::zip.name=spring-webflow,zip.deployed=false
30+
/**/webflow-*-docs.zip::zip.type=docs
31+
/**/webflow-*-dist.zip::zip.type=dist
32+
/**/webflow-*-schema.zip::zip.type=schema
33+
build-name: ${{ format('spring-webflow-{0}', steps.build-and-publish.outputs.version)}}
34+
folder: 'deployment-repository'
35+
password: ${{ secrets.ARTIFACTORY_PASSWORD }}
36+
repository: 'libs-staging-local'
37+
signing-key: ${{ secrets.GPG_PRIVATE_KEY }}
38+
signing-passphrase: ${{ secrets.GPG_PASSPHRASE }}
39+
uri: 'https://repo.spring.io'
40+
username: ${{ secrets.ARTIFACTORY_USERNAME }}
41+
outputs:
42+
version: ${{ steps.build-and-publish.outputs.version }}
43+
sync-to-maven-central:
44+
name: Sync to Maven Central
45+
needs:
46+
- build-and-stage-release
47+
runs-on: ubuntu-latest
48+
steps:
49+
- name: Check Out Code
50+
uses: actions/checkout@v5
51+
- name: Sync to Maven Central
52+
uses: ./.github/actions/sync-to-maven-central
53+
with:
54+
jfrog-cli-config-token: ${{ secrets.JF_ARTIFACTORY_SPRING }}
55+
ossrh-s01-staging-profile: ${{ secrets.OSSRH_S01_STAGING_PROFILE }}
56+
ossrh-s01-token-password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
57+
ossrh-s01-token-username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
58+
spring-webflow-version: ${{ needs.build-and-stage-release.outputs.version }}
59+
promote-release:
60+
name: Promote Release
61+
needs:
62+
- build-and-stage-release
63+
- sync-to-maven-central
64+
runs-on: ubuntu-latest
65+
steps:
66+
- name: Set up JFrog CLI
67+
uses: jfrog/setup-jfrog-cli@5b06f730cc5a6f55d78b30753f8583454b08c0aa # v4.8.1
68+
env:
69+
JF_ENV_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
70+
- name: Promote build
71+
run: jfrog rt build-promote ${{ format('spring-webflow-{0}', needs.build-and-stage-release.outputs.version)}} ${{ github.run_number }} libs-milestone-local
72+
create-github-release:
73+
name: Create GitHub Release
74+
needs:
75+
- build-and-stage-release
76+
- promote-release
77+
runs-on: ubuntu-latest
78+
steps:
79+
- name: Check Out Code
80+
uses: actions/checkout@v5
81+
- name: Create GitHub Release
82+
uses: ./.github/actions/create-github-release
83+
with:
84+
milestone: ${{ needs.build-and-stage-release.outputs.version }}
85+
pre-release: true
86+
token: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}

0 commit comments

Comments
 (0)