voonhous commented on code in PR #19642:
URL: https://github.com/apache/hudi/pull/19642#discussion_r3794800491
##########
.github/workflows/hudi_trino_ci.yml:
##########
@@ -127,20 +139,32 @@ jobs:
java-version: '25'
distribution: 'temurin'
cache: maven
- # Trino does not publish trino-spi / trino-filesystem / trino-hive
test-jars to
- # Maven Central. Check out the matching release tag and install just the
modules
- # whose test classifiers we need into the local m2.
- - name: Checkout trinodb/trino at 481
+ - name: Purge Trino artifacts from the local m2
if: needs.changes.outputs.trino == 'true'
+ # Artifacts an older pin left behind carry the same SNAPSHOT
coordinates as the current ones.
+ run: rm -rf ~/.m2/repository/io/trino
+ # Trino publishes neither SNAPSHOT artifacts nor the trino-spi /
trino-filesystem /
+ # trino-hive / trino-main test-jars, so every io.trino dependency is
built from the
+ # pinned trinodb/trino commit and cached under that commit.
+ - name: Restore Trino artifacts for the pinned commit
+ id: trino-m2
+ if: needs.changes.outputs.trino == 'true'
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2/repository/io/trino
+ key: trino-m2-v2-${{ steps.trino-pin.outputs.trino_sha }}
Review Comment:
Right -- the module list is part of the cache identity. All three keys now
include `hashFiles('scripts/trino/bootstrap_trino.sh')` in b92f718be3f5 (the
compat save hashes the same file at its `hudi/` checkout path; hashFiles
digests content, not paths, so the keys still line up).
##########
.github/workflows/hudi_trino_compat.yml:
##########
@@ -59,18 +82,27 @@ jobs:
echo "trino_version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Detected Trino version: $VERSION"
- name: Install Trino modules from master (JDK 25)
- working-directory: trino
- # hudi-trino compiles against these plus their transitive modules
(spi, cache, metastore,
- # hive-formats, memory-context). They must come from the master
checkout -- resolving from
- # Maven Central would defeat the point of the drift check.
- run: mvn $MVN_ARGS install -pl
:trino-hive,:trino-filesystem-manager,:trino-parquet,:trino-plugin-toolkit -am
-DskipTests -Dair.check.skip-all=true
+ # Same module set the pinned build uses, so a green compile here is a
promotable pin. The
+ # script purges ~/.m2/repository/io/trino itself and only warns when
master's version has
+ # rolled past the pinned trino.version.
+ env:
+ HEAD_SHA: ${{ steps.trino-head.outputs.head_sha }}
+ run: hudi/scripts/trino/bootstrap_trino.sh trino --skip-checkout --ref
"$HEAD_SHA"
Review Comment:
Good catch -- and this week proved it: the Floci container migration and the
BlobCache span rename were both test-side drift that `compile` would have waved
through. Added in b92f718be3f5: the compat job now runs
`-Phudi-trino,hudi-trino-tests -pl hudi-trino test` against trino HEAD, the JDK
17 leg installs `hudi-client-common`/`hudi-java-client` like the CI workflow,
the drift-issue handler covers test failures, and a test failure blocks both
the cache save and the pin advance.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]