name: httpclient-nightly # Lanes that need a container runtime, real time, or a QUIC-capable host (design ยง29). They are # separated from the per-PR gate rather than made optional inside it: a lane that cannot run here # fails, it does not skip. on: workflow_dispatch: schedule: - cron: '0 3 * * *' permissions: contents: read jobs: httpclient-fault-injection: runs-on: ubuntu-latest timeout-minutes: 45 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2 - name: Validate Gradle wrapper id: gradle-wrapper-validation uses: gradle/actions/wrapper-validation@3f131e8634966bd73d06cc69884922b02e6faf92 # gradle/actions@v6 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # actions/setup-java@v4.7.1 with: distribution: temurin java-version: "21.0.11+10" cache: gradle cache-dependency-path: | src/**/*.gradle src/**/gradle-wrapper.properties src/**/gradle.lockfile - name: Inject TCP faults against a real upstream working-directory: src run: >- ./gradlew :adapter:outbound:httpclient:httpClientFailureInjectionTest --no-daemon --stacktrace httpclient-performance: runs-on: ubuntu-latest timeout-minutes: 45 env: GRADLE_OPTS: -Dorg.gradle.project.performance.assertions.enabled=true steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2 - name: Validate Gradle wrapper id: gradle-wrapper-validation uses: gradle/actions/wrapper-validation@3f131e8634966bd73d06cc69884922b02e6faf92 # gradle/actions@v6 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # actions/setup-java@v4.7.1 with: distribution: temurin java-version: "21.0.11+10" cache: gradle cache-dependency-path: | src/**/*.gradle src/**/gradle-wrapper.properties src/**/gradle.lockfile - name: Certify pool, streaming, retry, and rotation bounds working-directory: src run: >- ./gradlew :adapter:outbound:httpclient:httpClientPerformanceTest --no-daemon --stacktrace httpclient-http3-experimental: runs-on: ubuntu-latest timeout-minutes: 30 # Experimental by design (D-08): the result is reported, never used to block a merge. continue-on-error: true steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # actions/checkout@v4.2.2 - name: Validate Gradle wrapper id: gradle-wrapper-validation uses: gradle/actions/wrapper-validation@3f131e8634966bd73d06cc69884922b02e6faf92 # gradle/actions@v6 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # actions/setup-java@v4.7.1 with: distribution: temurin java-version: "21.0.11+10" cache: gradle cache-dependency-path: | src/**/*.gradle src/**/gradle-wrapper.properties src/**/gradle.lockfile - name: Exercise the experimental HTTP/3 opt-in working-directory: src run: >- ./gradlew :adapter:outbound:httpclient:test -Phttp3.tests.enabled=true --no-daemon --stacktrace