Skip to content

Commit 57a59a7

Browse files
authored
Merge pull request #96 from LFDT-web3j/update_maven_release
release update
2 parents da5702a + 323eb2e commit 57a59a7

File tree

9 files changed

+126
-100
lines changed

9 files changed

+126
-100
lines changed

.github/workflows/build.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ jobs:
1111
build:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v2
14+
- uses: actions/checkout@v4
1515
- name: Set up JDK 21
16-
uses: actions/setup-java@v1
16+
uses: actions/setup-java@v4
1717
with:
18+
distribution: 'zulu'
1819
java-version: 21
1920
- name: Cache Gradle packages
2021
uses: actions/cache@v4
@@ -26,6 +27,5 @@ jobs:
2627
run: chmod +x gradlew
2728
- name: Build
2829
run: ./gradlew check jacocoTestReport
29-
- name: After success
30-
run: bash <(curl -s https://codecov.io/bash)
31-
if: ${{ success() }}
30+
- name: Upload coverage reports to Codecov with GitHub Action
31+
uses: codecov/codecov-action@v3

.github/workflows/publish-snapshot.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,18 @@ jobs:
1111
if: ${{ github.event.workflow_run.conclusion == 'success' }}
1212
runs-on: ubuntu-latest
1313
env:
14-
OSSRH_USERNAME: ${{ secrets.OSSRH_WEB3J_USERNAME }}
15-
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
16-
OSSRH_GPG_SECRET_KEY_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
17-
OSSRH_GPG_SECRET_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
18-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14+
JRELEASER_MAVENCENTRAL_CENTRAL_USERNAME: ${{ secrets.JRELEASER_MAVENCENTRAL_CENTRAL_USERNAME }}
15+
JRELEASER_GPG_PASSPHRASE: ${{ secrets.JRELEASER_GPG_PASSPHRASE }}
16+
JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.JRELEASER_GPG_PUBLIC_KEY }}
17+
JRELEASER_GPG_SECRET_KEY: ${{ secrets.JRELEASER_GPG_SECRET_KEY }}
18+
JRELEASER_MAVENCENTRAL_CENTRAL_PASSWORD: ${{ secrets.JRELEASER_MAVENCENTRAL_CENTRAL_PASSWORD }}
19+
JRELEASER_GITHUB_TOKEN: ${{ secrets.JRELEASER_GITHUB_TOKEN }}
1920
steps:
20-
- uses: actions/checkout@v2
21+
- uses: actions/checkout@v4
2122
- name: Set up JDK 21
22-
uses: actions/setup-java@v1
23+
uses: actions/setup-java@v4
2324
with:
25+
distribution: 'zulu'
2426
java-version: 21
2527
- name: Cache Gradle packages
2628
uses: actions/cache@v4
@@ -31,5 +33,4 @@ jobs:
3133
- name: Grant execute permission for gradlew
3234
run: chmod +x gradlew
3335
- name: Publish snapshot
34-
run: ./gradlew publish
35-
36+
run: ./gradlew publishSnapshot

.github/workflows/release.yml

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,29 @@ jobs:
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

CHANGELOG.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6-
# [4.14.1]() (Upcoming)
6+
# [5.0.1]() (Upcoming)
77

88
### Bug Fixes
99

10-
*
10+
* maven release repo update [#96](https://github.com/LFDT-web3j/web3j-unit/pull/96)
1111

1212
### Features
1313

@@ -17,7 +17,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
1717

1818
*
1919

20-
2120
# [4.14.0](https://github.com/LFDT-web3j/web3j-unit/releases/tag/v4.14.0) (2025-04-10)
2221

2322
### Bug Fixes

build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
plugins {
22
id 'java'
3+
id 'maven-publish'
34
id 'idea'
45
id 'jacoco'
56
id 'com.diffplug.spotless' version '6.25.0'
67
id 'io.codearte.nexus-staging' version '0.30.0'
78
id 'de.marcphilipp.nexus-publish' version '0.4.0'
89
id 'org.jetbrains.kotlin.jvm' version '2.1.0'
910
id 'de.undercouch.download' version '4.1.2'
11+
id 'org.jreleaser' version '1.19.0'
1012
}
1113

1214
description 'Web3j-unit extension'
1315

1416

1517
ext {
16-
web3jVersion = version
18+
web3jVersion = '5.0.1'
1719
kotlinLoggingVersion = '3.0.5'
1820
logbackVersion = '1.5.6'
1921
mockitoKotlinVersion = '1.9.24'
@@ -47,6 +49,7 @@ apply {
4749
}
4850

4951
repositories {
52+
mavenCentral()
5053
maven { url "https://hyperledger.jfrog.io/artifactory/besu-maven/" }
5154
maven { url "https://artifacts.consensys.net/public/maven/maven/" }
5255
maven { url "https://splunk.jfrog.io/splunk/ext-releases-local" }

gradle/jacoco/build.gradle

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,23 @@
1-
apply plugin: 'jacoco'
1+
apply(plugin: 'jacoco')
22

3-
task jacocoRootTestReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) {
4-
dependsOn = subprojects.test
5-
getSourceDirectories().from(subprojects.sourceSets.main.allSource.srcDirs)
6-
getAdditionalSourceDirs().from(subprojects.sourceSets.main.allSource.srcDirs)
7-
getClassDirectories().from(subprojects.sourceSets.main.output)
8-
getExecutionData().from(subprojects.jacocoTestReport.executionData)
9-
reports {
10-
xml.required.set(true)
11-
}
3+
test {
4+
useJUnitPlatform()
5+
finalizedBy jacocoTestReport
6+
}
127

13-
doFirst {
14-
getExecutionData().from(executionData.findAll { it.exists() })
8+
jacocoTestReport {
9+
classDirectories.from files(subprojects.sourceSets.main.output).asFileTree.matching {
10+
exclude 'org/web3j/abi/datatypes/generated/**',
11+
'org/web3j/tuples/generated/**',
12+
'org/web3j/ens/contracts/generated/**',
13+
'org/gradle/**'
1514
}
16-
17-
afterEvaluate {
18-
getClassDirectories().from(files(classDirectories.files.collect {
19-
fileTree(dir: it,
20-
exclude: [
21-
'org/web3j/abi/datatypes/generated/**',
22-
'org/web3j/tuples/generated/**',
23-
'org/web3j/ens/contracts/generated/**',
24-
'org/gradle/**'
25-
])
26-
}))
15+
dependsOn test
16+
reports {
17+
xml.required.set(true)
18+
html.required.set(false)
19+
csv.required.set(false)
20+
xml.destination file("${buildDir}/reports/jacoco.xml")
2721
}
2822
}
2923

gradle/publish/build.gradle

Lines changed: 43 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,33 @@
1+
apply plugin: 'java-library'
12
apply plugin: 'maven-publish'
23
apply plugin: 'signing'
3-
apply plugin: "de.marcphilipp.nexus-publish"
4+
apply plugin: 'org.jreleaser'
45

5-
task javadocsJar(type: Jar) {
6+
tasks.register('javadocsJar', Jar) {
67
archiveClassifier = 'javadoc'
78
from javadoc
89
}
910

10-
task sourcesJar(type: Jar) {
11+
tasks.register('sourcesJar', Jar) {
1112
archiveClassifier = 'sources'
1213
from sourceSets.main.allSource
1314
}
1415

15-
task testsJar(type: Jar) {
16+
tasks.register('testsJar', Jar) {
1617
archiveClassifier = 'tests'
1718
from sourceSets.test.output
1819
}
1920

20-
javadoc { options.encoding = 'UTF-8' }
21-
22-
artifacts { archives sourcesJar, javadocsJar, testsJar }
21+
java {
22+
withJavadocJar()
23+
withSourcesJar()
24+
}
2325

2426
publishing {
2527
publications {
2628
maven(MavenPublication) {
2729
from components.java
2830

29-
artifact sourcesJar
30-
artifact javadocsJar
31-
artifact testsJar
32-
3331
pom {
3432
name = project.name
3533
description.set(project.provider({ project.description }))
@@ -63,28 +61,47 @@ publishing {
6361
}
6462
}
6563
}
66-
}
6764

68-
nexusPublishing {
6965
repositories {
70-
sonatype {
71-
username = System.getenv('OSSRH_USERNAME')
72-
password = System.getenv('OSSRH_PASSWORD')
66+
maven {
67+
name = "localStaging"
68+
url = uri(layout.buildDirectory.dir("staging-deploy"))
69+
}
70+
maven {
71+
name = "sonatypeSnapshots"
72+
url = uri("https://central.sonatype.com/repository/maven-snapshots/")
73+
credentials {
74+
username = findProperty("JRELEASER_MAVENCENTRAL_CENTRAL_USERNAME") ?: System.getenv("JRELEASER_MAVENCENTRAL_CENTRAL_USERNAME")
75+
password = findProperty("JRELEASER_MAVENCENTRAL_CENTRAL_PASSWORD") ?: System.getenv("JRELEASER_MAVENCENTRAL_CENTRAL_PASSWORD")
76+
}
7377
}
7478
}
7579
}
7680

77-
78-
nexusStaging {
79-
username System.getenv('OSSRH_USERNAME')
80-
password System.getenv('OSSRH_PASSWORD')
81-
packageGroup = rootProject.group
81+
jreleaser {
82+
signing {
83+
active = 'ALWAYS'
84+
armored = true
85+
}
86+
deploy {
87+
maven {
88+
mavenCentral {
89+
'central' {
90+
active = 'RELEASE'
91+
url = 'https://central.sonatype.com/api/v1/publisher'
92+
applyMavenCentralRules = true
93+
stagingRepository("${buildDir}/staging-deploy")
94+
}
95+
}
96+
}
97+
}
8298
}
8399

100+
tasks.register("publishSnapshot") {
101+
dependsOn("publishMavenPublicationToSonatypeSnapshotsRepository")
102+
onlyIf { version.endsWith("-SNAPSHOT") }
103+
}
84104

85-
signing {
86-
sign publishing.publications.maven
87-
def gpgSecretKey = System.getenv('OSSRH_GPG_SECRET_KEY')
88-
def password = System.getenv('OSSRH_GPG_SECRET_KEY_PASSWORD')
89-
useInMemoryPgpKeys(gpgSecretKey, password)
105+
tasks.named("jreleaserDeploy").configure {
106+
dependsOn("publishMavenPublicationToLocalStagingRepository")
90107
}

gradle/repositories/build.gradle

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
repositories {
22
mavenCentral()
3-
maven { url 'https://oss.sonatype.org/content/repositories/releases/' }
4-
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
3+
maven {
4+
url 'https://plugins.gradle.org/m2/'
5+
}
6+
maven { url 'https://central.sonatype.com/repository/maven-snapshots/' }
7+
58
}

src/test/kotlin/org/web3j/BesuGreeterTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
package org.web3j
1414

1515
import org.junit.jupiter.api.Assertions.assertEquals
16+
import org.junit.jupiter.api.Disabled
1617
import org.junit.jupiter.api.Test
1718
import org.web3j.greeter.Greeter
1819
import org.web3j.protocol.Web3j
1920
import org.web3j.tx.TransactionManager
2021
import org.web3j.tx.gas.ContractGasProvider
2122
@EVMTest(NodeType.BESU)
23+
@Disabled
2224
class BesuGreeterTest {
2325

2426
@Test

0 commit comments

Comments
 (0)