Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2.1.0] #28

Merged
merged 12 commits into from
Oct 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: CI Master

on:
release:
types: [ published ]

jobs:
publish-release:
runs-on: ubuntu-latest
name: Publish Release

steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'

- name: Build
run: './gradlew classes'

- name: Test
run: './gradlew test jacocoTestReport'
env:
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_2 }}

- name: SonarQube
run: './gradlew sonar --info'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

- name: Publish Release to GitHub Packages
run: './gradlew publishMavenJavaPublicationToGitHubPackagesRepository'
env:
RELEASE_VERSION: ${{ github.ref_name }}
GITHUB_TOKEN: ${{ secrets.OSS_GITHUB_TOKEN }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.OSS_SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.OSS_SIGNING_PASSWORD }}

- name: Publish Release to OSSRH
run: './gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository'
env:
RELEASE_VERSION: ${{ github.ref_name }}
OSS_USERNAME: ${{ secrets.OSS_USERNAME }}
OSS_PASSWORD: ${{ secrets.OSS_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.OSS_SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.OSS_SIGNING_PASSWORD }}
44 changes: 44 additions & 0 deletions .github/workflows/publish-snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: CI Dev

on:
push:
paths:
- '**/workflows/*.yml'
- '**/java/**'
- '*.java'
- '*.gradle'
- '*.properties'
branches:
- dev

jobs:
publish-snapshot:
runs-on: ubuntu-latest
name: Publish Snapshot

steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'

- name: Code Style
run: './gradlew spotlessCheck'

- name: Build
run: './gradlew classes'

- name: Test
run: './gradlew test jacocoTestReport'
env:
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_2 }}

- name: Publish Snapshot
run: './gradlew publish'
env:
OSS_USERNAME: ${{ secrets.OSS_USERNAME }}
OSS_PASSWORD: ${{ secrets.OSS_PASSWORD }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.OSS_SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.OSS_SIGNING_PASSWORD }}
34 changes: 19 additions & 15 deletions .github/workflows/gradle.yml → .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
name: Java CI
name: CI Pull Request

on:
push:
branches:
- master
pull_request:
branches:
- master
Expand All @@ -15,37 +12,44 @@ jobs:
strategy:
matrix:
java: [ '11', '17' ]
name: Java ${{ matrix.java }} setup
name: Java ${{ matrix.java }} Pull Request setup

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v1

uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'adopt'

- name: Build
run: ./gradlew classes
- name: Code Style
run: './gradlew spotlessCheck'

- name: Codestyle
run: ./gradlew spotlessCheck
- name: Build
run: './gradlew classes'

- name: Test
if: matrix.java == '11'
run: ./gradlew test jacocoTestReport
run: './gradlew test jacocoTestReport'
env:
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_1 }}

- name: Test
if: matrix.java == '17'
run: ./gradlew test jacocoTestReport
run: './gradlew test jacocoTestReport'
env:
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_2 }}

- name: Test Report
if: matrix.java == '17'
uses: EnricoMi/publish-unit-test-result-action@v2
with:
files: |
**/test-results/**/*.xml

- name: SonarQube
if: matrix.java == '17'
run: ./gradlew sonarqube
run: './gradlew sonar --info'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
23 changes: 23 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Contributing Code or Documentation Guide

## Running Tests

The new code should contain tests that check new behavior.

Run tests `./gradlew test` to check that code works as behavior.

## Code Style

The code base should remain clean, following industry best practices for organization, javadoc and style, as much as possible.

To run the Code Style check use `./gradlew spotlessCheck`.

If check found any errors, you can apply Code Style by running `./gradlew spotlessApply`

## Creating a pull request

Once you are satisfied with your changes:

- Commit changes to the local branch you created.
- Push that branch with changes to the corresponding remote branch on GitHub
- Submit a [pull request](https://help.github.com/articles/creating-a-pull-request) to `dev` branch.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Java EtherScan API

[![Minimum required Java version](https://img.shields.io/badge/Java-1.8%2B-blue?logo=openjdk)](https://openjdk.org/projects/jdk8/)
[![GitHub Action](https://github.com/goodforgod/java-etherscan-api/workflows/Java%20CI/badge.svg)](https://github.com/GoodforGod/java-etherscan-api/actions?query=workflow%3A%22Java+CI%22)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.goodforgod/java-etherscan-api/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.goodforgod/java-etherscan-api)
[![Java CI](https://github.com/GoodforGod/java-etherscan-api/workflows/CI%20Master/badge.svg)](https://github.com/GoodforGod/java-etherscan-api/actions?query=workflow%3ACI+Master)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=GoodforGod_java-etherscan-api&metric=coverage)](https://sonarcloud.io/dashboard?id=GoodforGod_java-etherscan-api)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=GoodforGod_java-etherscan-api&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=GoodforGod_java-etherscan-api)
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=GoodforGod_java-etherscan-api&metric=ncloc)](https://sonarcloud.io/dashboard?id=GoodforGod_java-etherscan-api)
Expand All @@ -14,15 +15,15 @@ Library supports EtherScan *API* for all available *Ethereum Networks* for *ethe

**Gradle**
```groovy
implementation "com.github.goodforgod:java-etherscan-api:2.0.0"
implementation "com.github.goodforgod:java-etherscan-api:2.1.0"
```

**Maven**
```xml
<dependency>
<groupId>com.github.goodforgod</groupId>
<artifactId>java-etherscan-api</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>
</dependency>
```

Expand Down
1 change: 0 additions & 1 deletion _config.yml

This file was deleted.

48 changes: 40 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ plugins {
id "java-library"
id "maven-publish"

id "org.sonarqube" version "3.3"
id "com.diffplug.spotless" version "6.12.0"
id "org.sonarqube" version "4.3.0.3225"
id "com.diffplug.spotless" version "6.19.0"
id "io.github.gradle-nexus.publish-plugin" version "1.3.0"
}

repositories {
Expand All @@ -13,7 +14,8 @@ repositories {
}

group = groupId
version = artifactVersion
var ver = System.getenv().getOrDefault("RELEASE_VERSION", artifactVersion)
version = ver.startsWith("v") ? ver.substring(1) : ver

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
Expand All @@ -28,6 +30,7 @@ dependencies {
}

test {
failFast(false)
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
Expand All @@ -36,17 +39,21 @@ test {
}

reports {
html.enabled(false)
junitXml.enabled(false)
html.required = false
junitXml.required = true
}

environment([
"": "",
])
}

spotless {
java {
encoding("UTF-8")
importOrder()
removeUnusedImports()
eclipse("4.21.0").configFile("${rootDir}/config/codestyle.xml")
eclipse("4.21").configFile("${rootDir}/config/codestyle.xml")
}
}

Expand All @@ -58,6 +65,18 @@ sonarqube {
}
}

nexusPublishing {
packageGroup = groupId
repositories {
sonatype {
username = System.getenv("OSS_USERNAME")
password = System.getenv("OSS_PASSWORD")
nexusUrl.set(uri("https://oss.sonatype.org/service/local/"))
snapshotRepositoryUrl.set(uri("https://oss.sonatype.org/content/repositories/snapshots/"))
}
}
}

publishing {
publications {
mavenJava(MavenPublication) {
Expand Down Expand Up @@ -99,6 +118,16 @@ publishing {
password System.getenv("OSS_PASSWORD")
}
}
if (!version.endsWith("SNAPSHOT")) {
maven {
name = "GitHubPackages"
url = "https://maven.pkg.github.com/GoodforGod/$artifactId"
credentials {
username = System.getenv("GITHUB_ACTOR")
password = System.getenv("GITHUB_TOKEN")
}
}
}
}
}

Expand All @@ -116,7 +145,7 @@ tasks.withType(JavaCompile) {
check.dependsOn jacocoTestReport
jacocoTestReport {
reports {
xml.enabled true
xml.required = true
html.destination file("${buildDir}/jacocoHtml")
}
}
Expand All @@ -128,9 +157,12 @@ javadoc {
}
}

if (project.hasProperty("signing.keyId")) {
if (project.hasProperty("signingKey")) {
apply plugin: "signing"
signing {
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
useInMemoryPgpKeys(signingKey, signingPassword)
sign publishing.publications.mavenJava
}
}
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
groupId=com.github.goodforgod
artifactId=java-etherscan-api
artifactVersion=2.0.0
artifactVersion=2.1.0-SNAPSHOT


##### GRADLE #####
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading