This is an automated email from the ASF dual-hosted git repository. tballison pushed a commit to branch ci-pr-speedups in repository https://gitbox.apache.org/repos/asf/tika.git
commit 3bd1cc3a5f7867ce0f4f2c84710b07a6248e3be6 Author: tallison <[email protected]> AuthorDate: Mon Aug 31 16:04:09 2026 -0400 TIKA-4867 -- parallelize CI reactors with -T1C, run apache-rat serially --- .github/workflows/main-jdk17-build.yml | 17 ++++++++++++++--- .github/workflows/main-jdk17-locale-build.yml | 2 +- .github/workflows/main-jdk17-windows-build.yml | 2 +- .github/workflows/main-jdk21-build.yml | 2 +- .github/workflows/main-jdk25-build.yml | 2 +- 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main-jdk17-build.yml b/.github/workflows/main-jdk17-build.yml index 5f1a0e1568..369e2e8ab4 100644 --- a/.github/workflows/main-jdk17-build.yml +++ b/.github/workflows/main-jdk17-build.yml @@ -67,9 +67,20 @@ jobs: run: sudo apt-get update && sudo apt-get install -y ffmpeg libimage-exiftool-perl # Everything except $IT_MODULES, which the integration-tests job owns. # sed turns each ':artifactId' into the '!:artifactId' exclusion form. + # rat runs in its own SERIAL invocation: apache-rat-plugin 0.18 is not + # thread-safe (ConcurrentModificationException / corrupted counters under + # -T), so it must never share a -T1C command line. + - name: License check (apache-rat, serial) + run: | + mvn apache-rat:check -Pci \ + -pl "$(echo "$IT_MODULES" | sed 's/:/!:/g')" \ + -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" + # javadoc:aggregate is push-only: it is an aggregate-docs artifact, is + # single-threaded, and javadoc breakage is caught on main within the hour; + # PR pushes should not wait on it. - name: Build with Maven run: | - mvn clean apache-rat:check test install javadoc:aggregate -Pci \ + mvn clean test install ${{ github.event_name == 'push' && 'javadoc:aggregate' || '' }} -Pci -T1C \ -pl "$(echo "$IT_MODULES" | sed 's/:/!:/g')" \ -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" @@ -97,7 +108,7 @@ jobs: # jar-packaging reactor module, so -am cannot supply them. -Pfast keeps it # to ~3 min; the tests themselves run in the next step. - name: Install all modules (produces the plugin zips) - run: mvn clean install -Pfast -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" + run: mvn clean install -Pfast -T1C -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" # apache-rat:check here too -- the build job no longer sees these modules, # so without this they would drop out of license checking entirely. - name: Run integration tests @@ -132,7 +143,7 @@ jobs: # what puts each zip in the local repo. -Pfast (skipTests + rat/checkstyle/spotless # off) because the build job owns all of that; this job only needs the artifacts. - name: Install all modules (produces the plugin zips) - run: mvn clean install -Pfast -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" + run: mvn clean install -Pfast -T1C -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" # -pl must name the leaf modules: tika-e2e-tests is an aggregator pom, and Maven does # not pull in a selected aggregator's children, so this job built two pom-only modules # and ran zero tests while reporting green. diff --git a/.github/workflows/main-jdk17-locale-build.yml b/.github/workflows/main-jdk17-locale-build.yml index e4d5533eb1..4e32575f7c 100644 --- a/.github/workflows/main-jdk17-locale-build.yml +++ b/.github/workflows/main-jdk17-locale-build.yml @@ -59,7 +59,7 @@ jobs: # forgetting only makes this job slower, it does not weaken it. - name: Build with Maven (tr_TR locale) run: | - mvn clean test install -Pci \ + mvn clean test install -Pci -T1C \ -pl '!:tika-pipes-es-integration-tests,!:tika-pipes-kafka-integration-tests,!:tika-pipes-opensearch-integration-tests,!:tika-pipes-s3-integration-tests,!:tika-pipes-solr-integration-tests' \ -Duser.language=tr -Duser.country=TR \ -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" diff --git a/.github/workflows/main-jdk17-windows-build.yml b/.github/workflows/main-jdk17-windows-build.yml index 3c1bc52bdd..b83087f13c 100644 --- a/.github/workflows/main-jdk17-windows-build.yml +++ b/.github/workflows/main-jdk17-windows-build.yml @@ -61,4 +61,4 @@ jobs: # The -Duser.* args MUST stay quoted: PowerShell splits an unquoted dotted # -D property before it reaches mvn, so the locale silently never applies # and the leftover fragment fails the build as an unknown lifecycle phase. - run: mvn clean test install javadoc:aggregate -Pci -Pe2e "-Duser.language=de" "-Duser.country=DE" -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" + run: mvn clean test install javadoc:aggregate -Pci -Pe2e -T1C "-Duser.language=de" "-Duser.country=DE" -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" diff --git a/.github/workflows/main-jdk21-build.yml b/.github/workflows/main-jdk21-build.yml index 89b3416009..a72a460280 100644 --- a/.github/workflows/main-jdk21-build.yml +++ b/.github/workflows/main-jdk21-build.yml @@ -40,4 +40,4 @@ jobs: java-version: ${{ matrix.java }} cache: 'maven' - name: Build with Maven - run: mvn clean test install javadoc:aggregate -Pci -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" + run: mvn clean test install javadoc:aggregate -Pci -T1C -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" diff --git a/.github/workflows/main-jdk25-build.yml b/.github/workflows/main-jdk25-build.yml index f74dcaf099..2b1fa7ff5c 100644 --- a/.github/workflows/main-jdk25-build.yml +++ b/.github/workflows/main-jdk25-build.yml @@ -40,4 +40,4 @@ jobs: java-version: ${{ matrix.java }} cache: 'maven' - name: Build with Maven - run: mvn clean test install javadoc:aggregate -Pci -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" + run: mvn clean test install javadoc:aggregate -Pci -T1C -B "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
