Skip to content

Commit 5c1ccb0

Browse files
authored
Update Release workflow (#2236)
1 parent fe0c9b5 commit 5c1ccb0

File tree

5 files changed

+133
-68
lines changed

5 files changed

+133
-68
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: SmallRye Prepare Release
2+
3+
on:
4+
pull_request:
5+
types: [ closed ]
6+
paths:
7+
- '.github/project.yml'
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
permissions:
14+
contents: write
15+
16+
jobs:
17+
prepare-gradle:
18+
runs-on: ubuntu-latest
19+
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- name: git author
24+
run: |
25+
git config --global user.name "SmallRye CI"
26+
git config --global user.email "[email protected]"
27+
28+
- uses: radcortez/project-metadata-action@main
29+
name: retrieve project metadata
30+
id: metadata
31+
with:
32+
github-token: ${{secrets.GITHUB_TOKEN}}
33+
metadata-file-path: '.github/project.yml'
34+
35+
- name: Prepare Gradle
36+
run: |
37+
echo "version=${{steps.metadata.outputs.current-version}}" > tools/gradle-plugin/gradle.properties
38+
git add tools/gradle-plugin/gradle.properties
39+
git commit -m "Update Gradle plugin version"
40+
git push
41+
42+
prepare-release:
43+
needs: [prepare-gradle]
44+
name: Prepare Release
45+
if: ${{ github.event.pull_request.merged == true}}
46+
uses: smallrye/.github/.github/workflows/prepare-release.yml@main
47+
secrets: inherit
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Publish Gradle
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
version:
7+
required: true
8+
description: Tag version to perform release
9+
type: string
10+
11+
jobs:
12+
publish-gradle:
13+
name: Publish Gradle
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
name: checkout ${{inputs.version}}
19+
with:
20+
ref: ${{inputs.version}}
21+
22+
- uses: actions/setup-java@v4
23+
with:
24+
distribution: 'temurin'
25+
java-version: 11
26+
27+
- name: gradle release ${{inputs.version}}
28+
run: |
29+
mkdir -p ~/.gradle ; echo -e "gradle.publish.key=${{secrets.GRADLE_PUBLISH_KEY}}\ngradle.publish.secret=${{secrets.GRADLE_PUBLISH_SECRET}}" > ~/.gradle/gradle.properties
30+
cd tools/gradle-plugin && gradle publishPlugins

.github/workflows/release.yml

Lines changed: 32 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,36 @@
11
name: SmallRye Release
2-
2+
run-name: Perform ${{github.event.inputs.tag || github.ref_name}} Release
33
on:
4-
pull_request:
5-
types: [closed]
6-
paths:
7-
- '.github/project.yml'
4+
push:
5+
tags:
6+
- '*'
7+
workflow_dispatch:
8+
inputs:
9+
tag:
10+
description: 'Tag to release'
11+
required: true
12+
13+
permissions:
14+
attestations: write
15+
id-token: write
16+
# Needed for the publish-* workflows
17+
contents: write
18+
19+
concurrency:
20+
group: ${{ github.workflow }}-${{ github.ref }}
21+
cancel-in-progress: true
822

923
jobs:
10-
release:
11-
runs-on: ubuntu-latest
12-
name: release
13-
if: ${{github.event.pull_request.merged == true}}
14-
env:
15-
GITHUB_TOKEN: ${{secrets.RELEASE_TOKEN}}
16-
17-
steps:
18-
- uses: radcortez/project-metadata-action@main
19-
name: retrieve project metadata
20-
id: metadata
21-
with:
22-
github-token: ${{secrets.GITHUB_TOKEN}}
23-
metadata-file-path: '.github/project.yml'
24-
25-
- uses: actions/checkout@v2
26-
with:
27-
token: ${{secrets.RELEASE_TOKEN}}
28-
29-
- uses: actions/[email protected]
30-
with:
31-
java-version: 17
32-
server-id: 'oss.sonatype'
33-
server-username: 'MAVEN_DEPLOY_USERNAME'
34-
server-password: 'MAVEN_DEPLOY_TOKEN'
35-
gpg-private-key: ${{secrets.MAVEN_GPG_PRIVATE_KEY}}
36-
gpg-passphrase: 'MAVEN_GPG_PASSPHRASE'
37-
38-
- name: Install graphviz
39-
run: sudo apt install graphviz
40-
41-
- name: maven release ${{steps.metadata.outputs.current-version}}
42-
env:
43-
MAVEN_DEPLOY_USERNAME: ${{secrets.MAVEN_DEPLOY_USERNAME}}
44-
MAVEN_DEPLOY_TOKEN: ${{secrets.MAVEN_DEPLOY_TOKEN}}
45-
MAVEN_GPG_PASSPHRASE: ${{secrets.MAVEN_GPG_PASSPHRASE}}
46-
run: |
47-
java -version
48-
git config --global user.name "SmallRye CI"
49-
git config --global user.email "[email protected]"
50-
git checkout -b release
51-
# update gradle version plugin
52-
echo "version=${{steps.metadata.outputs.current-version}}" > tools/gradle-plugin/gradle.properties
53-
git add tools/gradle-plugin/gradle.properties
54-
git commit -m "Update Gradle plugin version"
55-
mvn -X -e -B release:prepare -Prelease -DreleaseVersion=${{steps.metadata.outputs.current-version}} -DdevelopmentVersion=${{steps.metadata.outputs.next-version}}
56-
git checkout ${{github.base_ref}}
57-
git rebase release
58-
mvn -X -e -B release:perform -Prelease
59-
git push
60-
git push --tags
61-
62-
- name: Gradle plugin release ${{steps.metadata.outputs.current-version}}
63-
run: |
64-
mkdir -p ~/.gradle ; echo -e "gradle.publish.key=${{secrets.GRADLE_PUBLISH_KEY}}\ngradle.publish.secret=${{secrets.GRADLE_PUBLISH_SECRET}}" > ~/.gradle/gradle.properties
65-
cd tools/gradle-plugin && gradle publishPlugins
66-
67-
- uses: radcortez/milestone-release-action@main
68-
name: milestone release
69-
with:
70-
github-token: ${{secrets.GITHUB_TOKEN}}
71-
milestone-title: ${{steps.metadata.outputs.current-version}}
24+
perform-release:
25+
name: Perform Release
26+
uses: smallrye/.github/.github/workflows/perform-release.yml@main
27+
secrets: inherit
28+
with:
29+
version: ${{github.event.inputs.tag || github.ref_name}}
30+
31+
publish-gradle:
32+
name: Publish Gradle
33+
uses: ./.github/workflows/publish-gradle.yml
34+
secrets: inherit
35+
with:
36+
version: ${{github.event.inputs.tag || github.ref_name}}
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: SmallRye Pre Release
1+
name: SmallRye Review Release
22

33
on:
44
pull_request:
@@ -18,6 +18,12 @@ jobs:
1818
github-token: ${{secrets.GITHUB_TOKEN}}
1919
metadata-file-path: '.github/project.yml'
2020

21+
- name: Validate version
22+
if: contains(steps.metadata.outputs.current-version, 'SNAPSHOT')
23+
run: |
24+
echo '::error::Cannot release a SNAPSHOT version.'
25+
exit 1
26+
2127
- uses: radcortez/milestone-review-action@main
2228
name: milestone review
2329
with:
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Update Milestone
2+
3+
on:
4+
pull_request_target:
5+
types: [closed]
6+
7+
jobs:
8+
update:
9+
runs-on: ubuntu-latest
10+
name: update-milestone
11+
if: ${{github.event.pull_request.merged == true}}
12+
13+
steps:
14+
- uses: radcortez/milestone-set-action@main
15+
name: milestone set
16+
with:
17+
github-token: ${{secrets.GITHUB_TOKEN}}

0 commit comments

Comments
 (0)