1+ name : Release new version
2+
3+ on :
4+ workflow_dispatch :
5+
6+ jobs :
7+ release :
8+ runs-on : ubuntu-latest
9+ permissions :
10+ contents : write
11+ packages : write
12+ env :
13+ STAGED_REPOSITORY : target/checkout/target/staging-deploy
14+
15+ steps :
16+ - name : Check if release is running from master
17+ run : |
18+ if [ "${GITHUB_REF}" != "refs/heads/master" ]; then
19+ echo "Release is only allowed from master branch"
20+ exit 1
21+ fi
22+
23+ - name : Checkout code
24+ uses : actions/checkout@v4
25+ with :
26+ fetch-depth : 0
27+
28+ - name : Install java
29+ uses : actions/setup-java@v4
30+ with :
31+ java-version : ' 24'
32+ distribution : ' temurin'
33+ gpg-private-key : ${{ secrets.JRELEASER_GPG_SECRET_KEY }}
34+ gpg-passphrase : MAVEN_GPG_PASSPHRASE
35+ cache : ' maven'
36+
37+ - name : Configure git
38+ run : |
39+ git config user.name "Trino Gateway Release"
40+ git config user.email "[email protected] " 41+
42+ - name : Lock branch before release
43+ uses : github/lock@v2
44+ id : release-lock
45+ with :
46+ mode : ' lock'
47+
48+ - name : Run mvn release:prepare
49+ env :
50+ MAVEN_GPG_PASSPHRASE : ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
51+ run : |
52+ ./mvnw -B release:prepare -Poss-release,oss-stage
53+
54+ - name : Determine release version
55+ run : |
56+ export VERSION=$(grep 'scm.tag=' release.properties | cut -d'=' -f2)
57+ echo "VERSION=${VERSION}" >> $GITHUB_ENV
58+ echo "Releasing version: ${VERSION}"
59+
60+ - name : Run mvn release:perform to local staging
61+ env :
62+ MAVEN_GPG_PASSPHRASE : ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
63+ run : |
64+ ./mvnw -B release:perform -Poss-release,oss-stage
65+
66+ - name : Display git status and history, checkout release tag
67+ run : |
68+ git status
69+ git log --oneline -n 2
70+
71+ - name : Run njord:validate
72+ env :
73+ MAVEN_GPG_PASSPHRASE : ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
74+ MAVENCENTRAL_USERNAME : ${{ secrets.JRELEASER_NEXUS2_MAVEN_CENTRAL_USERNAME }}
75+ MAVENCENTRAL_PASSWORD : ${{ secrets.JRELEASER_NEXUS2_MAVEN_CENTRAL_TOKEN }}
76+ run : |
77+ ./mvnw njord:list
78+ ./mvnw njord:status
79+ ./mvnw njord:validate
80+
81+ - name : Run njord:publish
82+ env :
83+ MAVEN_GPG_PASSPHRASE : ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
84+ MAVENCENTRAL_USERNAME : ${{ secrets.JRELEASER_NEXUS2_MAVEN_CENTRAL_USERNAME }}
85+ MAVENCENTRAL_PASSWORD : ${{ secrets.JRELEASER_NEXUS2_MAVEN_CENTRAL_TOKEN }}
86+ run :
87+ ./mvnw njord:publish -Poss-release,oss-stage -Ddetails -Dfull
88+
89+ - name : Push git changes
90+ run : |
91+ git status
92+ git describe
93+ git push origin master
94+ git push origin --tags
95+
96+ - name : Unlock branch after a release
97+ uses : github/lock@v2
98+ id : release-unlock
99+ with :
100+ mode : ' unlock'
0 commit comments