refactor: prefer streams for collection transforms; tighten conventions #2
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@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Set up JDK ${{ matrix.jdk }} | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: ${{ matrix.jdk }} | |
| cache: gradle | |
| - name: Validate Gradle wrapper | |
| uses: gradle/actions/wrapper-validation@v4 | |
| - name: Build | |
| run: ./gradlew build --no-daemon --stacktrace | |
| - name: Run all 10 examples | |
| run: | | |
| ./gradlew --no-daemon --stacktrace \ | |
| :examples:submit-and-stream:run \ | |
| :examples:cancel:run \ | |
| :examples:heartbeat:run \ | |
| :examples:cost-budget:run \ | |
| :examples:result-chunk:run \ | |
| :examples:agent-versions:run \ | |
| :examples:list-jobs:run \ | |
| :examples:lease-expires-at:run \ | |
| :examples:idempotent-retry:run \ | |
| :examples:custom-auth:run | |
| - name: Upload test reports | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-reports-jdk${{ matrix.jdk }} | |
| path: | | |
| **/build/reports/tests/ | |
| **/build/test-results/ | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| javadoc: | |
| name: javadoc | |
| runs-on: ubuntu-24.04 | |
| needs: build | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: "21" | |
| cache: gradle | |
| - name: Build javadoc for all published modules | |
| run: | | |
| ./gradlew --no-daemon \ | |
| :arcp-core:javadoc \ | |
| :arcp-client:javadoc \ | |
| :arcp-runtime:javadoc \ | |
| :arcp:javadoc \ | |
| :arcp-otel:javadoc \ | |
| :arcp-runtime-jetty:javadoc \ | |
| :arcp-middleware-jakarta:javadoc \ | |
| :arcp-middleware-spring-boot:javadoc \ | |
| :arcp-middleware-vertx:javadoc \ | |
| :arcp-tck:javadoc |