diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..6f3c96a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,10 @@ +name: Java Tests + +on: + push: + branches: + - '**' + +jobs: + test: + uses: ./.github/workflows/test.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 082e1ed..c1de1b3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -3,42 +3,24 @@ name: Publish Java on: push: tags: - - '*' - - '!**-dev**' + - '**' jobs: - release: - runs-on: ubuntu-latest - needs: publish - permissions: - contents: write - steps: - - name: Checkout code - uses: actions/checkout@v2 - - - name: Set Version - id: set_version - run: | - echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV - shell: bash - - - name: Create Release - run: | - gh release create ${{ env.VERSION }} --title "Release ${{ env.VERSION }}" - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + test: + uses: ./.github/workflows/test.yml publish: runs-on: ubuntu-latest + needs: test steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Setup Java - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: - java-version: '19' - distribution: 'adopt' + java-version: '17' + distribution: 'temurin' server-id: central server-username: OSSRH_USERNAME server-password: OSSRH_PASSWORD @@ -54,3 +36,24 @@ jobs: GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSPHRASE }} OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + + release: + runs-on: ubuntu-latest + needs: publish + permissions: + contents: write + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set Version + id: set_version + run: | + echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + shell: bash + + - name: Create Release + run: | + gh release create ${{ env.VERSION }} --title "Release ${{ env.VERSION }}" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..7459ebf --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,23 @@ +name: Run Tests + +on: + workflow_call: + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + java-version: [17, 21, 24] + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Setup Java ${{ matrix.java-version }} + uses: actions/setup-java@v5 + with: + java-version: ${{ matrix.java-version }} + distribution: 'temurin' + + - name: Run tests + run: make test diff --git a/CLAUDE.md b/CLAUDE.md index 0c890c0..683f270 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -7,7 +7,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ```bash make test # Run unit tests (mvn test) make integration-test # Run integration tests (requires SMARTY_AUTH_ID and SMARTY_AUTH_TOKEN env vars) -make compile # Clean, test, then compile +make compile # Clean, then compile make clean # Clean and reset version files make publish # Full publish workflow with version updates ``` @@ -24,7 +24,7 @@ mvn test -Dtest=ClientTest#testMethodName ## Architecture -This is the official SmartyStreets Java SDK for address validation and geocoding APIs. Requires Java 11+. +This is the official SmartyStreets Java SDK for address validation and geocoding APIs. Requires Java 17+. ### Dependencies diff --git a/Makefile b/Makefile index c9f99f8..8105653 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ test: integration-test: mvn integration-test -compile: clean test +compile: clean mvn compile publish: compile diff --git a/README.md b/README.md index d1f5004..b2cb898 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The official client libraries for accessing SmartyStreets APIs from Java (and JRE-based languages) -Compatible with Java 11 and later. Earlier Java versions supported by SDK version 3.10.7 and earlier. +Compatible with Java 17 and later. You may have noticed this page is curiously sparse. Don't panic, there's [documentation](https://smartystreets.com/docs/sdk/java) and [examples](src/main/java/examples). diff --git a/pom.xml b/pom.xml index 888985a..2968835 100644 --- a/pom.xml +++ b/pom.xml @@ -36,8 +36,8 @@ - 1.8 - 1.8 + 17 + 17 UTF-8 @@ -95,7 +95,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 8 + 17 3.4.0 @@ -158,8 +158,8 @@ maven-compiler-plugin 3.10.1 - 11 - 11 + 17 + 17