Skip to content

Commit d07e330

Browse files
committed
Publish milestones and release candidates to Maven Central
Closes gh-969
1 parent ba8e180 commit d07e330

File tree

2 files changed

+84
-1
lines changed

2 files changed

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

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Release
22
on:
33
push:
44
tags:
5-
- v3.0.[0-9]+
5+
- v4.0.[0-9]+
66
permissions:
77
contents: read
88
concurrency:

0 commit comments

Comments
 (0)