diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ceb9aa8..1eafbc7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,3 +69,25 @@ jobs: with: name: test-results path: build/test-results/test/ + + examples: + name: Compile Examples + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v7 + + - name: Set up JDK 21 + uses: actions/setup-java@v6 + with: + java-version: '21' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + + - name: Publish SDK to local Maven repository + run: ./gradlew publishToMavenLocal -PreleaseVersion=0.0.0-local + + - name: Compile examples against local SDK + run: mvn -B -f examples/pom.xml compile -Dpubsub-sdk.version=0.0.0-local diff --git a/README.md b/README.md index d8bb649..f8d20bf 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,14 @@ Standalone example programs demonstrating common patterns are in [`examples/`](e - `PurgeExample.java` — topic purging - `RetryExample.java` — custom retry configuration -The examples depend on the published SDK version set in `examples/pom.xml` (`pubsub-sdk.version`). To run them against your local checkout instead: +The examples depend on the published SDK version set in `examples/pom.xml` (`pubsub-sdk.version`). Run one by passing its main class: + +```sh +cd examples +mvn compile exec:java -Dexec.mainClass=cloud.stackit.pubsub.examples.BasicExample +``` + +To run them against your local checkout instead: ```sh ./gradlew publishToMavenLocal -PreleaseVersion=0.0.0-local diff --git a/examples/pom.xml b/examples/pom.xml index d74ea8a..4de4e2a 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -60,9 +60,6 @@ org.codehaus.mojo exec-maven-plugin 3.4.1 - - cloud.stackit.pubsub.examples.Examples -