diff --git a/.github/workflows/develop-snapshots.yml b/.github/workflows/develop-snapshots.yml
index cda36e2..28bb07d 100644
--- a/.github/workflows/develop-snapshots.yml
+++ b/.github/workflows/develop-snapshots.yml
@@ -33,7 +33,7 @@ jobs:
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: Cache Maven dependencies
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-develop-${{ hashFiles('**/pom.xml') }}
@@ -58,18 +58,21 @@ jobs:
-DskipTests=true \
-Dspotless.check.skip=true
- maven-central-snapshot:
+ github-packages-snapshot:
runs-on: ubuntu-latest
needs: validate-develop
- timeout-minutes: 25
+ timeout-minutes: 15
if: github.ref == 'refs/heads/dev'
+ permissions:
+ contents: read
+ packages: write
+
steps:
- name: Checkout develop
uses: actions/checkout@v4
with:
ref: dev
- fetch-depth: 0
- name: Setup JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
@@ -78,7 +81,7 @@ jobs:
distribution: ${{ env.JAVA_DISTRIBUTION }}
- name: Cache Maven dependencies
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-develop-${{ hashFiles('**/pom.xml') }}
@@ -86,103 +89,64 @@ jobs:
${{ runner.os }}-maven-develop-
${{ runner.os }}-maven-
- - name: Import GPG key
- uses: crazy-max/ghaction-import-gpg@v6
- with:
- gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
- passphrase: ${{ secrets.GPG_PASSPHRASE }}
-
- - name: Verify GPG import
+ - name: Run comprehensive tests
run: |
- gpg --list-secret-keys --keyid-format LONG
- echo "✅ GPG key imported successfully"
+ mvn clean verify -B --no-transfer-progress \
+ -Dmaven.test.failure.ignore=false \
+ -Dfailsafe.rerunFailingTestsCount=2
- - name: Configure Maven Central Snapshots
+ - name: Configure Maven Settings for GitHub Packages
uses: whelk-io/maven-settings-xml-action@v22
with:
servers: |
[
{
- "id": "central",
- "username": "${env.CENTRAL_TOKEN_USERNAME}",
- "password": "${env.CENTRAL_TOKEN_PASSWORD}"
- },
- {
- "id": "ossrh",
- "username": "${env.CENTRAL_TOKEN_USERNAME}",
- "password": "${env.CENTRAL_TOKEN_PASSWORD}"
+ "id": "github",
+ "username": "${env.GITHUB_ACTOR}",
+ "password": "${env.GITHUB_TOKEN}"
}
]
- - name: Display snapshot version
- run: |
- echo "📦 Deploying snapshot version: ${{ needs.validate-develop.outputs.snapshot-version }}"
-
- - name: Run comprehensive tests
- run: |
- mvn clean verify -B --no-transfer-progress \
- -Dmaven.test.failure.ignore=false \
- -Dfailsafe.rerunFailingTestsCount=2
-
- - name: Deploy to Maven Central Snapshots
+ - name: Deploy to GitHub Packages (Snapshots Only)
run: |
- mvn clean deploy -B --no-transfer-progress \
- -Pmaven-central-release \
- -DskipTests=true \
- -Dcentral.autoPublish=true \
- -Dgpg.keyname="$GPG_KEY_ID"
+ mvn deploy -B --no-transfer-progress \
+ -Pgithub-packages-snapshot \
+ -DskipTests=true
env:
- CENTRAL_TOKEN_USERNAME: ${{ secrets.CENTRAL_TOKEN_USERNAME }}
- CENTRAL_TOKEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN_PASSWORD }}
- GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
- GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
-
- - name: Verify Maven Central snapshot deployment
- run: |
- VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
- echo "⏳ Waiting for snapshot propagation..."
- sleep 10
-
- # Check if snapshot metadata is available
- METADATA_URL="https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/maven-metadata.xml"
- if curl -s -f "$METADATA_URL" > /dev/null; then
- echo "✅ Snapshot metadata confirmed at OSSRH"
- else
- echo "⚠️ Snapshot metadata not yet available (may take time to propagate)"
- fi
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Display deployment info
+ - name: Verify GitHub Packages deployment
run: |
VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
- echo "✅ Successfully deployed $VERSION to Maven Central Snapshots"
- echo "📦 Available at: https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/"
+ echo "✅ Snapshot deployed to GitHub Packages: $VERSION"
+ echo "📦 Available at: https://github.com/logdash-io/java-sdk/packages"
echo ""
- echo "🔍 Maven dependency:"
+ echo "🔍 Maven dependency (requires GitHub authentication):"
echo ""
echo " io.logdash"
echo " logdash"
echo " $VERSION"
echo ""
- echo ""
- echo "🔍 Gradle dependency:"
- echo "implementation 'io.logdash:logdash:$VERSION'"
- - name: Notify deployment status
- if: failure()
+ - name: Display deployment info
run: |
VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
- echo "❌ Snapshot deployment failed for version $VERSION"
- echo "Check logs above for deployment errors"
+ echo "📋 Snapshot Deployment Summary:"
+ echo "✅ Successfully deployed $VERSION to GitHub Packages (snapshots only)"
+ echo "🔢 Version: $VERSION"
+ echo "📦 Repository: https://github.com/logdash-io/java-sdk/packages"
+ echo ""
+ echo "⚠️ Note: GitHub Packages requires authentication even for public repos"
- github-packages-snapshot:
+ test-examples:
runs-on: ubuntu-latest
- needs: validate-develop
- timeout-minutes: 15
+ needs: [ validate-develop, github-packages-snapshot ]
+ timeout-minutes: 20
if: github.ref == 'refs/heads/dev'
permissions:
contents: read
- packages: write
+ packages: read
steps:
- name: Checkout develop
@@ -196,15 +160,6 @@ jobs:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}
- - name: Cache Maven dependencies
- uses: actions/cache@v3
- with:
- path: ~/.m2/repository
- key: ${{ runner.os }}-maven-develop-${{ hashFiles('**/pom.xml') }}
- restore-keys: |
- ${{ runner.os }}-maven-develop-
- ${{ runner.os }}-maven-
-
- name: Configure Maven Settings for GitHub Packages
uses: whelk-io/maven-settings-xml-action@v22
with:
@@ -217,55 +172,32 @@ jobs:
}
]
- - name: Deploy to GitHub Packages (Backup)
+ - name: Test Simple Java Example with Snapshot
run: |
- mvn deploy -B --no-transfer-progress \
- -Pgithub-release \
- -DperformRelease=true \
- -DskipTests=true
+ cd examples/example-simple-java
+ mvn clean compile -B --no-transfer-progress \
+ -Psnapshot-repo
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Verify GitHub Packages deployment
+ - name: Test Spring Boot Example with Snapshot
run: |
- VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
- echo "✅ Backup snapshot deployed to GitHub Packages: $VERSION"
- echo "📦 Available at: https://github.com/logdash-io/java-sdk/packages"
-
- verify-deployments:
- runs-on: ubuntu-latest
- needs: [ maven-central-snapshot, github-packages-snapshot ]
- timeout-minutes: 10
- if: github.ref == 'refs/heads/dev'
+ cd examples/example-springboot
+ mvn clean compile -B --no-transfer-progress \
+ -Psnapshot-repo
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- steps:
- - name: Final verification
+ - name: Test Check Deployed Package
run: |
- VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
- echo "🔍 Final verification for snapshot: $VERSION"
-
- # Wait a bit more for propagation
- echo "⏳ Waiting for complete propagation..."
- sleep 10
-
- # Check Maven Central snapshots via OSSRH
- METADATA_URL="https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/maven-metadata.xml"
- if curl -s -f "$METADATA_URL" > /dev/null; then
- echo "✅ Maven Central snapshot confirmed and accessible"
- else
- echo "⚠️ Maven Central snapshot metadata not accessible yet"
- fi
-
- echo ""
- echo "📋 Deployment Summary:"
- echo "🏗️ Maven Central Snapshots: ${{ needs.maven-central-snapshot.result }}"
- echo "📦 GitHub Packages: ${{ needs.github-packages-snapshot.result }}"
- echo "🔢 Version: $VERSION"
- echo "🌐 Repository: https://s01.oss.sonatype.org/content/repositories/snapshots/"
+ cd check-deployed-package
+ mvn clean compile -B --no-transfer-progress
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
notification:
runs-on: ubuntu-latest
- needs: [ validate-develop, maven-central-snapshot, github-packages-snapshot, verify-deployments ]
+ needs: [ validate-develop, github-packages-snapshot, test-examples ]
if: always() && github.ref == 'refs/heads/dev'
steps:
@@ -280,23 +212,20 @@ jobs:
echo ""
echo "Job Results:"
echo "✓ Validation: ${{ needs.validate-develop.result }}"
- echo "✓ Maven Central: ${{ needs.maven-central-snapshot.result }}"
- echo "✓ GitHub Packages: ${{ needs.github-packages-snapshot.result }}"
- echo "✓ Verification: ${{ needs.verify-deployments.result }}"
+ echo "✓ GitHub Packages (Snapshots): ${{ needs.github-packages-snapshot.result }}"
+ echo "✓ Examples Testing: ${{ needs.test-examples.result }}"
echo ""
- # Check overall success
if [[ "${{ needs.validate-develop.result }}" == "success" &&
- "${{ needs.maven-central-snapshot.result }}" == "success" &&
- "${{ needs.github-packages-snapshot.result }}" == "success" ]]; then
- echo "🎉 All snapshot deployments completed successfully!"
- echo "📦 $VERSION is now available for testing"
+ "${{ needs.github-packages-snapshot.result }}" == "success" &&
+ "${{ needs.test-examples.result }}" == "success" ]]; then
+ echo "🎉 Snapshot deployment completed successfully!"
+ echo "📦 $VERSION is now available for testing via GitHub Packages"
else
- echo "⚠️ Some deployments may have failed. Check individual job results above."
+ echo "⚠️ Snapshot deployment failed. Check individual job results above."
fi
echo ""
echo "🔗 Quick Access:"
- echo "- Maven Central: https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/"
echo "- GitHub Packages: https://github.com/logdash-io/java-sdk/packages"
echo "- Workflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
\ No newline at end of file
diff --git a/examples/example-springboot/pom.xml b/examples/example-springboot/pom.xml
index 220e3bc..7bbc0fe 100644
--- a/examples/example-springboot/pom.xml
+++ b/examples/example-springboot/pom.xml
@@ -58,7 +58,7 @@
-
+
false
@@ -67,9 +67,9 @@
true
interval:60
- maven-central-snapshots
- Maven Central Snapshots
- https://central.sonatype.com/repository/maven-snapshots/
+ github-snapshots
+ GitHub Packages Snapshots
+ https://maven.pkg.github.com/logdash-io/java-sdk
@@ -118,8 +118,26 @@
never
- maven-central-snapshots
- https://central.sonatype.com/repository/maven-snapshots/
+ github-snapshots
+ https://maven.pkg.github.com/logdash-io/java-sdk
+
+
+
+
+
+ snapshot-repo
+
+
+
+ false
+
+
+ true
+ always
+
+ github-snapshots
+ GitHub Packages Snapshots
+ https://maven.pkg.github.com/logdash-io/java-sdk
diff --git a/pom.xml b/pom.xml
index a3b4343..b695cf0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -502,6 +502,31 @@
+
+
+ github-packages-snapshot
+
+
+ github
+ GitHub Packages Snapshots
+ https://maven.pkg.github.com/logdash-io/java-sdk
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ ${maven-deploy-plugin.version}
+
+ true
+ false
+
+
+
+
+
+
github-release
@@ -525,7 +550,6 @@
-
org.apache.maven.plugins
maven-deploy-plugin
@@ -548,15 +572,9 @@
Central Repository
https://central.sonatype.com/api/v1/publisher
-
- ossrh
- Central Repository OSSRH Snapshots
- https://s01.oss.sonatype.org/content/repositories/snapshots/
-
-
org.sonatype.central
central-publishing-maven-plugin
@@ -569,8 +587,6 @@
required
-
-
org.apache.maven.plugins
maven-gpg-plugin
@@ -595,7 +611,6 @@
-
org.apache.maven.plugins
maven-deploy-plugin