diff --git a/.github/workflows/maven-central.yml b/.github/workflows/maven-central.yml new file mode 100644 index 0000000..83864ed --- /dev/null +++ b/.github/workflows/maven-central.yml @@ -0,0 +1,94 @@ +name: Publish to Maven Central + +on: + push: + tags: + - 'v*' + branches: + - 'feature/release-*' + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up JDK 8 + uses: actions/setup-java@v4 + with: + java-version: '8' + distribution: 'temurin' + cache: maven + + - name: Setup GPG + run: | + echo "Setting up GPG..." + mkdir -p ~/.gnupg + chmod 700 ~/.gnupg + + # Import private key + echo "${{ secrets.GPG_PRIVATE_KEY }}" > private.key + echo "Importing GPG key..." + gpg --batch --import private.key + rm private.key + + # Configure GPG + echo "Configuring GPG..." + cat > ~/.gnupg/gpg.conf << EOF + default-key ${{ secrets.GPG_KEYNAME }} + use-agent + pinentry-mode loopback + EOF + + # Debug information + echo "=== GPG Keys ===" + gpg --list-secret-keys --keyid-format LONG + gpg --list-keys --keyid-format LONG + + - name: Configure Maven + run: | + mkdir -p ~/.m2 + cat > ~/.m2/settings.xml << EOF + + + + central + ${{ secrets.OSSRH_USERNAME_TOKEN }} + ${{ secrets.OSSRH_PASSWORD_TOKEN }} + + + + + central + + true + + + gpg + ${{ secrets.GPG_PASSPHRASE }} + + + + + EOF + + - name: Build and Publish + env: + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME_TOKEN }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD_TOKEN }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + run: | + echo "Starting Maven build and deploy..." + mvn clean deploy -P release \ + -Dmaven.javadoc.skip=false \ + -Dmaven.deploy.skip=false \ + -Dgpg.keyname=${{ secrets.GPG_KEYNAME }} \ + -Dgpg.useagent=true \ + -Dmaven.test.failure.ignore=false \ + -DaltDeploymentRepository=ossrh::default::https://central.sonatype.com/api/v1/publisher/upload \ + -DrepositoryId=ossrh \ + -Dusername=${{ secrets.OSSRH_USERNAME_TOKEN }} \ + -Dpassword=${{ secrets.OSSRH_PASSWORD_TOKEN }} \ No newline at end of file diff --git a/README.md b/README.md index b7abf43..ee46b4c 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ This API client provides a type-safe Java interface for WooCommerce REST API v3, ## 📦 Version information -- **Current version**: `0.9.4` +- **Current version**: `0.9.5` - **Supported WooCommerce API version**: `v3` - **Java compatibility**: Java 8+ @@ -93,7 +93,7 @@ Then add the locally built artifact to your project: pl.wtx.woocommerce woocommerce-api-client - 0.9.4 + 0.9.5 ``` diff --git a/pom.xml b/pom.xml index 36d1c82..d46febe 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ pl.wtx.woocommerce woocommerce-api-client - 0.9.4 + 0.9.5 jar WooCommerce REST API Client @@ -24,8 +24,20 @@ 1.9.0 3.0.2 1.3.2 + true + + + ossrh + https://central.sonatype.com/api/v1/publisher/upload + + + ossrh + https://central.sonatype.com/api/v1/publisher/upload + + + @@ -164,6 +176,54 @@ + + org.apache.maven.plugins + maven-gpg-plugin + 3.0.1 + + + sign-artifacts + verify + + sign + + + ${gpg.keyname} + ${gpg.passphrase} + + --batch + --yes + --pinentry-mode + loopback + + + + + + + + org.sonatype.central + central-publishing-maven-plugin + 0.7.0 + true + + central + https://central.sonatype.com + WooCommerce API Client - ${project.version} + required + false + + + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.1 + + ossrh::default::https://central.sonatype.com/api/v1/publisher/upload + + + @@ -201,4 +261,59 @@ + + + release + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + + + + + + + + + MIT License + https://opensource.org/licenses/MIT + repo + + +