build(deps): bump the maven group across 11 directories with 1 update #513
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "CI: Native Image" | |
| on: | |
| # `-am` in the install step transitively compiles modules/ai + modules/wasync, | |
| # so a doclint / compile break in those modules fails Native Image even | |
| # though they are not direct `-pl` targets. Trigger on them too. | |
| push: | |
| branches: [ main ] | |
| paths: | |
| - 'modules/cpr/**' | |
| - 'modules/ai/**' | |
| - 'modules/wasync/**' | |
| - 'modules/spring-boot-starter/**' | |
| - 'modules/quarkus-extension/**' | |
| - 'samples/spring-boot-chat/**' | |
| - 'samples/quarkus-chat/**' | |
| - '.mvn/**' | |
| - 'pom.xml' | |
| - '.github/workflows/native-image-ci.yml' | |
| pull_request: | |
| branches: [ main ] | |
| paths: | |
| - 'modules/cpr/**' | |
| - 'modules/ai/**' | |
| - 'modules/wasync/**' | |
| - 'modules/spring-boot-starter/**' | |
| - 'modules/quarkus-extension/**' | |
| - 'samples/spring-boot-chat/**' | |
| - 'samples/quarkus-chat/**' | |
| - '.mvn/**' | |
| - 'pom.xml' | |
| - '.github/workflows/native-image-ci.yml' | |
| workflow_dispatch: | |
| jobs: | |
| spring-boot-native: | |
| name: Spring Boot Native Image | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up GraalVM 25 | |
| uses: graalvm/setup-graalvm@v1 | |
| with: | |
| java-version: '25' | |
| distribution: 'graalvm' | |
| cache: 'maven' | |
| - name: Install Atmosphere Modules | |
| run: ./mvnw -B install -DskipTests -Dgpg.skip=true -pl modules/cpr,modules/spring-boot-starter,modules/wasync -am | |
| - name: Build Spring Boot Native Image | |
| run: ./mvnw -B -Pnative package -DskipTests -Dgpg.skip=true -pl samples/spring-boot-chat | |
| timeout-minutes: 20 | |
| - name: Verify Native Binary Exists | |
| run: | | |
| BINARY=$(find samples/spring-boot-chat/target -maxdepth 1 -name 'atmosphere-spring-boot-chat*' -not -name '*.jar' -not -name '*.jar.original' -not -name '*.txt' -type f -executable | head -1) | |
| if [ -z "$BINARY" ]; then | |
| echo "Native binary not found. Contents of target/:" | |
| ls -lh samples/spring-boot-chat/target/ | |
| exit 1 | |
| fi | |
| echo "NATIVE_BINARY=$BINARY" >> "$GITHUB_ENV" | |
| ls -lh "$BINARY" | |
| file "$BINARY" | |
| - name: Smoke Test Native Binary | |
| run: | | |
| "$NATIVE_BINARY" & | |
| PID=$! | |
| # Wait for startup (native images start fast) | |
| for i in $(seq 1 30); do | |
| if curl -sf http://localhost:8080/actuator/health > /dev/null 2>&1; then | |
| echo "Application started successfully" | |
| kill $PID | |
| exit 0 | |
| fi | |
| sleep 1 | |
| done | |
| echo "Application failed to start within 30 seconds" | |
| kill $PID 2>/dev/null || true | |
| exit 1 | |
| - name: Upload Native Binary | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: spring-boot-native-artifacts | |
| path: samples/spring-boot-chat/target/ | |
| quarkus-native: | |
| name: Quarkus Native Image | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Install Atmosphere Modules | |
| run: ./mvnw -B install -DskipTests -Dgpg.skip=true | |
| - name: Build Quarkus Native Image (container build) | |
| run: ./mvnw -B -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.builder-image=quay.io/quarkus/ubi9-quarkus-mandrel-builder-image:jdk-21 package -DskipTests -Dgpg.skip=true -pl samples/quarkus-chat | |
| timeout-minutes: 20 | |
| - name: Verify Native Binary Exists | |
| run: | | |
| ls -lh samples/quarkus-chat/target/*-runner | |
| file samples/quarkus-chat/target/*-runner | |
| - name: Smoke Test Native Binary | |
| run: | | |
| samples/quarkus-chat/target/*-runner & | |
| PID=$! | |
| for i in $(seq 1 30); do | |
| if curl -sf http://localhost:8080/ > /dev/null 2>&1; then | |
| echo "Application started successfully" | |
| kill $PID | |
| exit 0 | |
| fi | |
| sleep 1 | |
| done | |
| echo "Application failed to start within 30 seconds" | |
| kill $PID 2>/dev/null || true | |
| exit 1 | |
| - name: Upload Native Binary | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: quarkus-native-artifacts | |
| path: samples/quarkus-chat/target/ |