Skip to content

Commit ab5690d

Browse files
Merge pull request #17 from logdash-io/feat/snapshot
ci(snapshot): update workflow for snapshots
2 parents 5f63fdd + d45d527 commit ab5690d

3 files changed

Lines changed: 108 additions & 146 deletions

File tree

.github/workflows/develop-snapshots.yml

Lines changed: 59 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
distribution: ${{ env.JAVA_DISTRIBUTION }}
3434

3535
- name: Cache Maven dependencies
36-
uses: actions/cache@v3
36+
uses: actions/cache@v4
3737
with:
3838
path: ~/.m2/repository
3939
key: ${{ runner.os }}-maven-develop-${{ hashFiles('**/pom.xml') }}
@@ -58,18 +58,21 @@ jobs:
5858
-DskipTests=true \
5959
-Dspotless.check.skip=true
6060
61-
maven-central-snapshot:
61+
github-packages-snapshot:
6262
runs-on: ubuntu-latest
6363
needs: validate-develop
64-
timeout-minutes: 25
64+
timeout-minutes: 15
6565
if: github.ref == 'refs/heads/dev'
6666

67+
permissions:
68+
contents: read
69+
packages: write
70+
6771
steps:
6872
- name: Checkout develop
6973
uses: actions/checkout@v4
7074
with:
7175
ref: dev
72-
fetch-depth: 0
7376

7477
- name: Setup JDK ${{ env.JAVA_VERSION }}
7578
uses: actions/setup-java@v4
@@ -78,111 +81,72 @@ jobs:
7881
distribution: ${{ env.JAVA_DISTRIBUTION }}
7982

8083
- name: Cache Maven dependencies
81-
uses: actions/cache@v3
84+
uses: actions/cache@v4
8285
with:
8386
path: ~/.m2/repository
8487
key: ${{ runner.os }}-maven-develop-${{ hashFiles('**/pom.xml') }}
8588
restore-keys: |
8689
${{ runner.os }}-maven-develop-
8790
${{ runner.os }}-maven-
8891
89-
- name: Import GPG key
90-
uses: crazy-max/ghaction-import-gpg@v6
91-
with:
92-
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
93-
passphrase: ${{ secrets.GPG_PASSPHRASE }}
94-
95-
- name: Verify GPG import
92+
- name: Run comprehensive tests
9693
run: |
97-
gpg --list-secret-keys --keyid-format LONG
98-
echo "✅ GPG key imported successfully"
94+
mvn clean verify -B --no-transfer-progress \
95+
-Dmaven.test.failure.ignore=false \
96+
-Dfailsafe.rerunFailingTestsCount=2
9997
100-
- name: Configure Maven Central Snapshots
98+
- name: Configure Maven Settings for GitHub Packages
10199
uses: whelk-io/maven-settings-xml-action@v22
102100
with:
103101
servers: |
104102
[
105103
{
106-
"id": "central",
107-
"username": "${env.CENTRAL_TOKEN_USERNAME}",
108-
"password": "${env.CENTRAL_TOKEN_PASSWORD}"
109-
},
110-
{
111-
"id": "ossrh",
112-
"username": "${env.CENTRAL_TOKEN_USERNAME}",
113-
"password": "${env.CENTRAL_TOKEN_PASSWORD}"
104+
"id": "github",
105+
"username": "${env.GITHUB_ACTOR}",
106+
"password": "${env.GITHUB_TOKEN}"
114107
}
115108
]
116109
117-
- name: Display snapshot version
118-
run: |
119-
echo "📦 Deploying snapshot version: ${{ needs.validate-develop.outputs.snapshot-version }}"
120-
121-
- name: Run comprehensive tests
122-
run: |
123-
mvn clean verify -B --no-transfer-progress \
124-
-Dmaven.test.failure.ignore=false \
125-
-Dfailsafe.rerunFailingTestsCount=2
126-
127-
- name: Deploy to Maven Central Snapshots
110+
- name: Deploy to GitHub Packages (Snapshots Only)
128111
run: |
129-
mvn clean deploy -B --no-transfer-progress \
130-
-Pmaven-central-release \
131-
-DskipTests=true \
132-
-Dcentral.autoPublish=true \
133-
-Dgpg.keyname="$GPG_KEY_ID"
112+
mvn deploy -B --no-transfer-progress \
113+
-Pgithub-packages-snapshot \
114+
-DskipTests=true
134115
env:
135-
CENTRAL_TOKEN_USERNAME: ${{ secrets.CENTRAL_TOKEN_USERNAME }}
136-
CENTRAL_TOKEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN_PASSWORD }}
137-
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
138-
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
139-
140-
- name: Verify Maven Central snapshot deployment
141-
run: |
142-
VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
143-
echo "⏳ Waiting for snapshot propagation..."
144-
sleep 10
145-
146-
# Check if snapshot metadata is available
147-
METADATA_URL="https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/maven-metadata.xml"
148-
if curl -s -f "$METADATA_URL" > /dev/null; then
149-
echo "✅ Snapshot metadata confirmed at OSSRH"
150-
else
151-
echo "⚠️ Snapshot metadata not yet available (may take time to propagate)"
152-
fi
116+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
153117

154-
- name: Display deployment info
118+
- name: Verify GitHub Packages deployment
155119
run: |
156120
VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
157-
echo "✅ Successfully deployed $VERSION to Maven Central Snapshots"
158-
echo "📦 Available at: https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/"
121+
echo "✅ Snapshot deployed to GitHub Packages: $VERSION"
122+
echo "📦 Available at: https://github.com/logdash-io/java-sdk/packages"
159123
echo ""
160-
echo "🔍 Maven dependency:"
124+
echo "🔍 Maven dependency (requires GitHub authentication):"
161125
echo "<dependency>"
162126
echo " <groupId>io.logdash</groupId>"
163127
echo " <artifactId>logdash</artifactId>"
164128
echo " <version>$VERSION</version>"
165129
echo "</dependency>"
166-
echo ""
167-
echo "🔍 Gradle dependency:"
168-
echo "implementation 'io.logdash:logdash:$VERSION'"
169130
170-
- name: Notify deployment status
171-
if: failure()
131+
- name: Display deployment info
172132
run: |
173133
VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
174-
echo "❌ Snapshot deployment failed for version $VERSION"
175-
echo "Check logs above for deployment errors"
134+
echo "📋 Snapshot Deployment Summary:"
135+
echo "✅ Successfully deployed $VERSION to GitHub Packages (snapshots only)"
136+
echo "🔢 Version: $VERSION"
137+
echo "📦 Repository: https://github.com/logdash-io/java-sdk/packages"
138+
echo ""
139+
echo "⚠️ Note: GitHub Packages requires authentication even for public repos"
176140
177-
github-packages-snapshot:
141+
test-examples:
178142
runs-on: ubuntu-latest
179-
needs: validate-develop
180-
timeout-minutes: 15
143+
needs: [ validate-develop, github-packages-snapshot ]
144+
timeout-minutes: 20
181145
if: github.ref == 'refs/heads/dev'
182146

183147
permissions:
184148
contents: read
185-
packages: write
149+
packages: read
186150

187151
steps:
188152
- name: Checkout develop
@@ -196,15 +160,6 @@ jobs:
196160
java-version: ${{ env.JAVA_VERSION }}
197161
distribution: ${{ env.JAVA_DISTRIBUTION }}
198162

199-
- name: Cache Maven dependencies
200-
uses: actions/cache@v3
201-
with:
202-
path: ~/.m2/repository
203-
key: ${{ runner.os }}-maven-develop-${{ hashFiles('**/pom.xml') }}
204-
restore-keys: |
205-
${{ runner.os }}-maven-develop-
206-
${{ runner.os }}-maven-
207-
208163
- name: Configure Maven Settings for GitHub Packages
209164
uses: whelk-io/maven-settings-xml-action@v22
210165
with:
@@ -217,55 +172,32 @@ jobs:
217172
}
218173
]
219174
220-
- name: Deploy to GitHub Packages (Backup)
175+
- name: Test Simple Java Example with Snapshot
221176
run: |
222-
mvn deploy -B --no-transfer-progress \
223-
-Pgithub-release \
224-
-DperformRelease=true \
225-
-DskipTests=true
177+
cd examples/example-simple-java
178+
mvn clean compile -B --no-transfer-progress \
179+
-Psnapshot-repo
226180
env:
227181
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
228182

229-
- name: Verify GitHub Packages deployment
183+
- name: Test Spring Boot Example with Snapshot
230184
run: |
231-
VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
232-
echo "✅ Backup snapshot deployed to GitHub Packages: $VERSION"
233-
echo "📦 Available at: https://github.com/logdash-io/java-sdk/packages"
234-
235-
verify-deployments:
236-
runs-on: ubuntu-latest
237-
needs: [ maven-central-snapshot, github-packages-snapshot ]
238-
timeout-minutes: 10
239-
if: github.ref == 'refs/heads/dev'
185+
cd examples/example-springboot
186+
mvn clean compile -B --no-transfer-progress \
187+
-Psnapshot-repo
188+
env:
189+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
240190

241-
steps:
242-
- name: Final verification
191+
- name: Test Check Deployed Package
243192
run: |
244-
VERSION="${{ needs.validate-develop.outputs.snapshot-version }}"
245-
echo "🔍 Final verification for snapshot: $VERSION"
246-
247-
# Wait a bit more for propagation
248-
echo "⏳ Waiting for complete propagation..."
249-
sleep 10
250-
251-
# Check Maven Central snapshots via OSSRH
252-
METADATA_URL="https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/maven-metadata.xml"
253-
if curl -s -f "$METADATA_URL" > /dev/null; then
254-
echo "✅ Maven Central snapshot confirmed and accessible"
255-
else
256-
echo "⚠️ Maven Central snapshot metadata not accessible yet"
257-
fi
258-
259-
echo ""
260-
echo "📋 Deployment Summary:"
261-
echo "🏗️ Maven Central Snapshots: ${{ needs.maven-central-snapshot.result }}"
262-
echo "📦 GitHub Packages: ${{ needs.github-packages-snapshot.result }}"
263-
echo "🔢 Version: $VERSION"
264-
echo "🌐 Repository: https://s01.oss.sonatype.org/content/repositories/snapshots/"
193+
cd check-deployed-package
194+
mvn clean compile -B --no-transfer-progress
195+
env:
196+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
265197

266198
notification:
267199
runs-on: ubuntu-latest
268-
needs: [ validate-develop, maven-central-snapshot, github-packages-snapshot, verify-deployments ]
200+
needs: [ validate-develop, github-packages-snapshot, test-examples ]
269201
if: always() && github.ref == 'refs/heads/dev'
270202

271203
steps:
@@ -280,23 +212,20 @@ jobs:
280212
echo ""
281213
echo "Job Results:"
282214
echo "✓ Validation: ${{ needs.validate-develop.result }}"
283-
echo "✓ Maven Central: ${{ needs.maven-central-snapshot.result }}"
284-
echo "✓ GitHub Packages: ${{ needs.github-packages-snapshot.result }}"
285-
echo "✓ Verification: ${{ needs.verify-deployments.result }}"
215+
echo "✓ GitHub Packages (Snapshots): ${{ needs.github-packages-snapshot.result }}"
216+
echo "✓ Examples Testing: ${{ needs.test-examples.result }}"
286217
echo ""
287218
288-
# Check overall success
289219
if [[ "${{ needs.validate-develop.result }}" == "success" &&
290-
"${{ needs.maven-central-snapshot.result }}" == "success" &&
291-
"${{ needs.github-packages-snapshot.result }}" == "success" ]]; then
292-
echo "🎉 All snapshot deployments completed successfully!"
293-
echo "📦 $VERSION is now available for testing"
220+
"${{ needs.github-packages-snapshot.result }}" == "success" &&
221+
"${{ needs.test-examples.result }}" == "success" ]]; then
222+
echo "🎉 Snapshot deployment completed successfully!"
223+
echo "📦 $VERSION is now available for testing via GitHub Packages"
294224
else
295-
echo "⚠️ Some deployments may have failed. Check individual job results above."
225+
echo "⚠️ Snapshot deployment failed. Check individual job results above."
296226
fi
297227
298228
echo ""
299229
echo "🔗 Quick Access:"
300-
echo "- Maven Central: https://s01.oss.sonatype.org/content/repositories/snapshots/io/logdash/logdash/$VERSION/"
301230
echo "- GitHub Packages: https://github.com/logdash-io/java-sdk/packages"
302231
echo "- Workflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"

examples/example-springboot/pom.xml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
</dependencies>
5959

6060
<repositories>
61-
<!-- Maven Central Snapshots -->
61+
<!-- GitHub Packages Snapshots -->
6262
<repository>
6363
<releases>
6464
<enabled>false</enabled>
@@ -67,9 +67,9 @@
6767
<enabled>true</enabled>
6868
<updatePolicy>interval:60</updatePolicy>
6969
</snapshots>
70-
<id>maven-central-snapshots</id>
71-
<name>Maven Central Snapshots</name>
72-
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
70+
<id>github-snapshots</id>
71+
<name>GitHub Packages Snapshots</name>
72+
<url>https://maven.pkg.github.com/logdash-io/java-sdk</url>
7373
</repository>
7474
</repositories>
7575

@@ -118,8 +118,26 @@
118118
<snapshots>
119119
<updatePolicy>never</updatePolicy>
120120
</snapshots>
121-
<id>maven-central-snapshots</id>
122-
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
121+
<id>github-snapshots</id>
122+
<url>https://maven.pkg.github.com/logdash-io/java-sdk</url>
123+
</repository>
124+
</repositories>
125+
</profile>
126+
127+
<profile>
128+
<id>snapshot-repo</id>
129+
<repositories>
130+
<repository>
131+
<releases>
132+
<enabled>false</enabled>
133+
</releases>
134+
<snapshots>
135+
<enabled>true</enabled>
136+
<updatePolicy>always</updatePolicy>
137+
</snapshots>
138+
<id>github-snapshots</id>
139+
<name>GitHub Packages Snapshots</name>
140+
<url>https://maven.pkg.github.com/logdash-io/java-sdk</url>
123141
</repository>
124142
</repositories>
125143
</profile>

0 commit comments

Comments
 (0)