77 release :
88 runs-on : ubuntu-latest
99 env :
10- OSSRH_USERNAME : ${{ secrets.OSSRH_WEB3J_USERNAME }}
11- OSSRH_PASSWORD : ${{ secrets.OSSRH_PASSWORD }}
12- OSSRH_GPG_SECRET_KEY_PASSWORD : ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
13- OSSRH_GPG_SECRET_KEY : ${{ secrets.OSSRH_GPG_SECRET_KEY }}
14- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
10+ JRELEASER_MAVENCENTRAL_CENTRAL_USERNAME : ${{ secrets.JRELEASER_MAVENCENTRAL_CENTRAL_USERNAME }}
11+ JRELEASER_GPG_PASSPHRASE : ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
12+ JRELEASER_GPG_PUBLIC_KEY : ${{ secrets.JRELEASER_GPG_PUBLIC_KEY }}
13+ JRELEASER_GPG_SECRET_KEY : ${{ secrets.JRELEASER_GPG_SECRET_KEY }}
14+ JRELEASER_MAVENCENTRAL_CENTRAL_PASSWORD : ${{ secrets.JRELEASER_MAVENCENTRAL_CENTRAL_PASSWORD }}
15+ JRELEASER_GITHUB_TOKEN : ${{ secrets.JRELEASER_GITHUB_TOKEN }}
1516 steps :
16- - uses : actions/checkout@v2
17+ - uses : actions/checkout@v4
1718 - name : Build Workflow Dispatch
1819 uses : convictional/trigger-workflow-and-wait@v1.3.0
1920 with :
2021 owner : LFDT-web3j
2122 repo : web3j-unit
22- github_token : ${{ secrets.GITHUB_TOKEN }}
23+ github_token : ${{ secrets.JRELEASER_GITHUB_TOKEN }}
2324 workflow_file_name : build.yml
2425 wait_interval : 10
2526 propagate_failure : true
2627 trigger_workflow : true
2728 wait_workflow : true
2829 - name : Set up JDK 21
29- uses : actions/setup-java@v1
30+ uses : actions/setup-java@v4
3031 with :
32+ distribution : ' zulu'
3133 java-version : 21
3234 - name : Cache Gradle packages
3335 uses : actions/cache@v4
@@ -37,31 +39,36 @@ jobs:
3739 restore-keys : ${{ runner.os }}-gradle
3840 - name : Grant execute permission for gradlew
3941 run : chmod +x gradlew
40- - name : Release name
42+ - name : Extract release version from branch
4143 id : release_name
42- uses : actions/github-script@v4
43- with :
44- result-encoding : string
45- script : |
46- const branch_name = process.env.GITHUB_REF
47- const web3j_release_version = branch_name.substring(branch_name.lastIndexOf('/') +1 ,branch_name.length )
48- process.env.VERSION = web3j_release_version
49- return web3j_release_version
50- - name : Build and stage release
51- run : ./gradlew publish -Pversion=${{ steps.release_name.outputs.result }}
52- - name : Release
53- run : ./gradlew closeAndReleaseRepository
54- outputs :
55- stripped_version : ${{ steps.release_name.outputs.result }}
56- git-release :
44+ run : |
45+ BRANCH="${GITHUB_REF##*/}"
46+ echo "version=$BRANCH" >> "$GITHUB_OUTPUT"
47+ - name : Fail if version is a SNAPSHOT
48+ if : endsWith(steps.release_name.outputs.version, '-SNAPSHOT')
49+ run : |
50+ echo "This workflow is for releases only. Version '${{ steps.release_name.outputs.version }}' ends with -SNAPSHOT." >&2
51+ exit 1
52+
53+ # Publish artifacts to local staging repo (your Gradle config already defines it)
54+ - name : Stage artifacts locally
55+ run : ./gradlew -Pversion=${{ steps.release_name.outputs.version }} publishMavenPublicationToLocalStagingRepository --stacktrace
56+
57+ # Deploy to Central Portal via JReleaser (Publisher API)
58+ - name : Deploy to Maven Central (Portal)
59+ run : ./gradlew -Pversion=${{ steps.release_name.outputs.version }} jreleaserDeploy --stacktrace
60+
61+ javadocs-release :
5762 needs : release
5863 runs-on : ubuntu-latest
5964 steps :
60- - name : Github Release
61- uses : marvinpinto/action-automatic-releases@latest
65+ - uses : actions/checkout@v4
66+ - name : Set up JDK 21
67+ uses : actions/setup-java@v4
6268 with :
63- repo_token : ${{ secrets.GITHUB_TOKEN }}
64- automatic_release_tag : ' v${{ needs.release.outputs.stripped_version }}'
65- prerelease : false
66- files : |
67- "web3j-unit-"+${{ steps.release_name.outputs.result }}.*
69+ distribution : zulu
70+ java-version : 21
71+ - name : Publish Javadocs (gh-pages)
72+ env :
73+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
74+ run : ./gradlew core:gitPublishPush
0 commit comments