chore(deps): bump io.netty:netty-codec-http2 from 4.2.5.Final to 4.2.13.Final #48
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 | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - "**.md" | |
| - "LICENSE" | |
| - ".gitignore" | |
| - ".editorconfig" | |
| - "docs/diagrams/**" # diagrams workflow owns these | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: | |
| - "**.md" | |
| - "LICENSE" | |
| - ".gitignore" | |
| - ".editorconfig" | |
| - "docs/diagrams/**" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: build (JDK ${{ matrix.jdk }}) | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # 21 is the LTS floor (`--release 21`); 25 is the September 2025 LTS | |
| # and matches the toolchain the local developer setup uses. Both must | |
| # produce green tests on every PR. | |
| jdk: ["21", "25"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 1 | |
| - name: Set up JDK ${{ matrix.jdk }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: ${{ matrix.jdk }} | |
| # Built-in Maven cache: keys off pom.xml hashes and restores ~/.m2/repository. | |
| cache: maven | |
| - name: Check formatting (Spotless) | |
| if: ${{ matrix.jdk == '21' }} | |
| run: mvn -B -ntp -Darcp.skip.spotless=false spotless:check | |
| - name: Build and test | |
| # JDK 25 skips spotless because google-java-format embedded in the pinned | |
| # spotless version cannot run against JDK 25's javac internals. | |
| # `install` (not `verify`) so subsequent `mvn -f <module>/pom.xml` steps | |
| # resolve our SNAPSHOTs from the local repository. | |
| run: | | |
| if [[ "${{ matrix.jdk }}" == "21" ]]; then | |
| mvn -B -ntp -Dmaven.javadoc.skip=true install | |
| else | |
| mvn -B -ntp -Dmaven.javadoc.skip=true -Darcp.skip.spotless=true install | |
| fi | |
| - name: Run all runnable examples and recipes | |
| # `-f <module>/pom.xml` scopes exec:java to the leaf module only. | |
| # Using `-pl <module> -am exec:java` runs exec:java on every reactor | |
| # module pulled in by -am (including the parent pom), which fails | |
| # because no mainClass is defined there. | |
| run: | | |
| for module in \ | |
| examples/submit-and-stream \ | |
| examples/cancel \ | |
| examples/heartbeat \ | |
| examples/cost-budget \ | |
| examples/result-chunk \ | |
| examples/agent-versions \ | |
| examples/list-jobs \ | |
| examples/lease-expires-at \ | |
| examples/idempotent-retry \ | |
| examples/custom-auth \ | |
| examples/provisioned-credentials \ | |
| examples/ack-backpressure \ | |
| examples/delegate \ | |
| examples/spring-boot \ | |
| examples/jakarta \ | |
| examples/lease-violation \ | |
| examples/progress \ | |
| examples/resume \ | |
| examples/stdio \ | |
| examples/subscribe \ | |
| examples/tracing \ | |
| examples/vendor-extensions \ | |
| recipes/email-vendor-leases \ | |
| recipes/mcp-skill \ | |
| recipes/multi-agent-budget \ | |
| recipes/stream-resume | |
| do | |
| echo "::group::run $module" | |
| mvn -B -ntp -f "$module/pom.xml" -Darcp.skip.spotless=true \ | |
| -Dmaven.javadoc.skip=true -Dmaven.test.skip=true \ | |
| -Dexec.cleanupDaemonThreads=false exec:java | |
| echo "::endgroup::" | |
| done | |
| - name: Upload test reports | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: test-reports-jdk${{ matrix.jdk }} | |
| path: | | |
| **/target/surefire-reports/ | |
| **/target/site/jacoco/ | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| # jacoco-maven-plugin (configured in the parent pom) writes per-module | |
| # XML reports to target/site/jacoco/jacoco.xml — the path the Codecov | |
| # example-java-maven repo uses. Upload from the LTS floor only; coverage | |
| # is identical across JDKs. Non-blocking. | |
| - name: Upload coverage to Codecov | |
| if: matrix.jdk == '21' | |
| # codecov/codecov-action v6.0.1 | |
| uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1 | |
| with: | |
| fail_ci_if_error: false | |
| flags: unittests | |
| files: "**/target/site/jacoco/jacoco.xml" | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| javadoc: | |
| name: javadoc | |
| runs-on: ubuntu-24.04 | |
| needs: build | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| cache: maven | |
| - name: Build javadoc for all published modules | |
| run: | | |
| mvn -B -ntp -am -DskipTests -Darcp.skip.spotless=true \ | |
| -pl arcp-core,arcp-client,arcp-runtime,arcp,arcp-otel,arcp-runtime-jetty,arcp-middleware-jakarta,arcp-middleware-spring-boot,arcp-middleware-vertx,arcp-tck \ | |
| javadoc:javadoc |