Skip to content

HADOOP-19858. Set up build workflow on GitHub Actions#8412

Merged
pan3793 merged 1 commit intoapache:trunkfrom
pan3793:HADOOP-19858
Apr 22, 2026
Merged

HADOOP-19858. Set up build workflow on GitHub Actions#8412
pan3793 merged 1 commit intoapache:trunkfrom
pan3793:HADOOP-19858

Conversation

@pan3793
Copy link
Copy Markdown
Member

@pan3793 pan3793 commented Apr 8, 2026

Description of PR

This PR sets up a "build-only"(including all Java, Native, and Web code) workflow for Hadoop on GitHub Actions, the basic framework is largely inspired by Apache Spark (apache/spark#32193) - run CI jobs on the forked repo, which has two major benefits:

  1. security, since we must build docker image on-the-fly and use it across jobs, we must push the docker image to a registry, run jobs in the forked repo does not require the write permission of the registry for the apache/hadoop repo.
  2. bills happen on the contributors' forked repo, won't increase the ASF CI budget. GHA usage is free for personal public repos with only a concurrency limit

what runs on the forked repo, on each push

  • Build "Infra Images" using dev-support/docker/Dockerfile_*
  • Run "build-only" (will be changed to run "test" in the future) on Ubuntu 24 with Java 17
  • Run "build-only" on Rocky Linux 8 with Java 21
  • Run "build-only" on Debian 13 with Java 25

what runs on the apache/hadoop repo

  • (on each PR) Find the GHA workflow run URL from the forked repo, and link it to the PR jobs
  • (globally scheduled job) Sync the final status of the GHA workflow runs on the forked repo for each open PR

This is an attempt for https://lists.apache.org/thread/k40c2yzb7fc7nj9rm37ov4dd3vfov9j7 - shift some CI jobs from Jenkins to GHA, and run them in parallel, to speed up Hadoop CI.

For reviewers: the current workflow is inspired by Apache Spark, you may find that the workflow is written in a kind of over-engineering pattern, but this is necessary for future extension.

How was this patch tested?

I created another forked repo from my forked repo, and verified this in my forked repo.

take this PR pan3793#3 as an example

when jobs are running

Xnip2026-04-15_02-10-24 Xnip2026-04-15_02-10-35 Xnip2026-04-15_02-11-58

when jobs are completed

image image

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (HADOOP-19858)?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

AI Tooling

No AI usage.

Comment thread .github/workflows/tmpl_build_and_test.yml
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
with:
context: ./dev-support/docker/
file: ./dev-support/docker/Dockerfile_${{ inputs.os }}
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fresh building takes 15~20 min, will speed it up by using cache, in the next PR.

Comment thread .github/workflows/tmpl_build_and_test.yml Outdated
uid: ${{ steps.variables.outputs.uid }}
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

follow ASF GHA policy, - MUST pin all external actions (other than apache/*, github/* and actions/*) to the specific git hash (SHA1)

https://infra.apache.org/github-actions-policy.html

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 8, 2026

@ajfabbri @ayushtkn @slfan1989, what do you think of this direction? if it works well, we can at least remove the native build jobs from the Jenkins pipeline.

@hadoop-yetus
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 53s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 yamllint 0m 0s yamllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ trunk Compile Tests _
+1 💚 shadedclient 38m 43s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 shadedclient 32m 54s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
75m 2s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/1/artifact/out/Dockerfile
GITHUB PR #8412
Optional Tests dupname asflicense codespell detsecrets yamllint
uname Linux e0bb39ba6ca0 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 1406f0c
Max. process+thread count 580 (vs. ulimit of 10000)
modules C: . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/1/console
versions git=2.43.0 maven=3.9.11
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@ayushtkn
Copy link
Copy Markdown
Member

ayushtkn commented Apr 8, 2026

I am pretty much in favour of delegating as much as possible to github actions and maybe just let tests run as part of the Jenkins CI.
If others aren't against it. I am a Big +1 to this initiative

@hadoop-yetus
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 54s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 yamllint 0m 1s yamllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ trunk Compile Tests _
+1 💚 shadedclient 39m 41s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 shadedclient 33m 23s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
76m 22s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/2/artifact/out/Dockerfile
GITHUB PR #8412
Optional Tests dupname asflicense codespell detsecrets yamllint
uname Linux 0552352d6d8c 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / ac4515f
Max. process+thread count 586 (vs. ulimit of 10000)
modules C: . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/2/console
versions git=2.43.0 maven=3.9.11
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 17s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/4/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 57s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 yamllint 0m 0s yamllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ trunk Compile Tests _
+1 💚 shadedclient 40m 21s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 shadedclient 32m 17s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 asflicense 0m 37s The patch does not generate ASF License warnings.
76m 12s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/3/artifact/out/Dockerfile
GITHUB PR #8412
Optional Tests dupname asflicense codespell detsecrets yamllint
uname Linux 9bd79bfdfa64 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / bca7c3e
Max. process+thread count 570 (vs. ulimit of 10000)
modules C: . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/3/console
versions git=2.43.0 maven=3.9.11
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

Copy link
Copy Markdown
Contributor

@ajfabbri ajfabbri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this! Looks pretty good, but I have a couple of questions.

Comment thread .github/workflows/tmpl_build_and_test.yml Outdated
Comment thread .github/workflows/tmpl_build_and_test.yml
Comment thread .github/workflows/tmpl_build_and_test.yml Outdated
@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 22s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/6/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 8, 2026

need to diagnose the container image write permission issue, which was not present in my test (because I'm the owner of the forked repo), convert to draft for now.

@pan3793 pan3793 closed this Apr 8, 2026
@pan3793 pan3793 reopened this Apr 8, 2026
@hadoop-yetus
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 51s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 yamllint 0m 1s yamllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ trunk Compile Tests _
+1 💚 shadedclient 36m 42s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 shadedclient 32m 1s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
71m 56s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/5/artifact/out/Dockerfile
GITHUB PR #8412
Optional Tests dupname asflicense codespell detsecrets yamllint
uname Linux 10ceccc65b19 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / b2c2580
Max. process+thread count 587 (vs. ulimit of 10000)
modules C: . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/5/console
versions git=2.43.0 maven=3.9.11
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 7m 5s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 yamllint 0m 1s yamllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ trunk Compile Tests _
+1 💚 shadedclient 18m 51s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 shadedclient 14m 32s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 asflicense 0m 23s The patch does not generate ASF License warnings.
42m 9s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/8/artifact/out/Dockerfile
GITHUB PR #8412
Optional Tests dupname asflicense codespell detsecrets yamllint
uname Linux d6feb90d4426 5.15.0-171-generic #181-Ubuntu SMP Fri Feb 6 22:44:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / bf9a750
Max. process+thread count 640 (vs. ulimit of 10000)
modules C: . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/8/console
versions git=2.43.0 maven=3.9.11
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

Comment thread .github/workflows/build_only_trunk_debian_13.yml Outdated
@hadoop-yetus
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 53s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 yamllint 0m 0s yamllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ trunk Compile Tests _
+1 💚 shadedclient 37m 0s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 shadedclient 32m 19s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 asflicense 0m 35s The patch does not generate ASF License warnings.
72m 31s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/7/artifact/out/Dockerfile
GITHUB PR #8412
Optional Tests dupname asflicense codespell detsecrets yamllint
uname Linux c86d2a33addd 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / bf9a750
Max. process+thread count 587 (vs. ulimit of 10000)
modules C: . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/7/console
versions git=2.43.0 maven=3.9.11
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@pan3793 pan3793 marked this pull request as draft April 9, 2026 02:16
@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 21s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #8412
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/9/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@pan3793 pan3793 marked this pull request as ready for review April 14, 2026 18:41
Comment thread .github/workflows/tmpl_build_and_test.yml Outdated
@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 22s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #8412
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/10/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 19, 2026

  1. Spark example blocks some of their workflows from running on fork repos with conditionals like this one: if github.repository == 'apache/spark'.

This PR is missing 2, right?

@ajfabbri yes, but this is irrelevant to security, the intention here is to save resources, I remember in those days, the forked repos also auto-run cron jobs by default. - note, the contributor has full control over their forked repo, so they can remove if github.repository == 'apache/spark' condition in their forked repo if they want.

spark has a lot of profiles (java/scala/python/arrow/pandas versions, ANSI/non-ANSI, sbt/maven, etc.), a full combination produces a large matrix, so it selects a part of that to run on PR and push, and schedules daily jobs (you can find those jobs status in the README.md) on apache/spark repo for other combinations.

Spark uses these workflows from privileged context on the official repo (workflow "cron" triggers that can't be triggered by forks) as well as allowing them to run on forks. The thing I dislike about their example is it lacks clear separation of privilege. I think we could do better on that.

I'm not sure what your definition of "privileged". I think it's a normal use case of GHA, the same workflow can be triggered by different events from different contexts, we just need to be careful with one case - a workflow can be triggered on the upstream context, and the workflow consumes untrusted code from PR.

Are you thinking that we 1. build the hadoop-build (dev-support) container. 2. run maven build in that container. 3. build pre-installed images (like hadoop-trunk, hadoop-, hadoop-3.5, etc.) 4. run tests on those installed images?

I don't think this is something we want to do, for unit tests. Generally, testing requires more dev dependencies, which might not be required by the runtime, for example, in Maven, we can define dependencies in compile, runtime, test scopes, when runs UT, it pulls the runtime + test scopes deps into the classpath, similar things apply to native libs.

TBH, I didn't see many production use cases that deploy Hadoop in containers, and obviously, the current "pre-installed images" are mostly used for downstream projects for testing, and it only covers a few cases, at least kerberized YARN is likely not to work - for hadoop 3.4.x, official hadoop bin tgz was built on ubuntu 20.04, with openssl 1.x, while the pre-installed images is based on the ubuntu 22.04, which only has openssl 3.x in apt repo, IIRC it will fail the kerberized linux container to start.

while building some smoking/integration tests like spark kubernetes/integration-tests based on the "pre-installed images" might be a good supplement in the future, but obviously, this is out of the scope of the current goals

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 19, 2026

@steveloughran, I'm not the author of the Spark GHA workflow, but yes, I think we have the same understanding of that.

How about we get this into the hadoop-thirdparty repo first, so we can play with it ourselves and make sure we are all happy before merging this into hadoop itself?

this repo has low traffic, I'm not sure if we can exercise it thoroughly.

@ajfabbri
Copy link
Copy Markdown
Contributor

Thanks again for explaining. So you propose just building the "build" or "infra" images for now? I am fine with that. 👍 I think it would be cool to build the preinstalled containers with workflows too in the future, but not now.

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 19, 2026

@ajfabbri yes, "build" or "infra" -only image (I borrowed "infra" from spark, because it has a lot of variants of images for different purposes - PySpark testing, SparkR testing, docs building, releasing, etc.), if this sounds misleading, we can call it "build", to match ./start-build-env.sh, or something else like "dev"

@ajfabbri
Copy link
Copy Markdown
Contributor

Either works for me 👍 I will try to spend some time tomorrow testing with your branch (now that I understand more) and see if we can get it ready for merging. 🤞

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 19, 2026

@ajfabbri thanks, let me tune the image name and have a rebase, as trunk has moved forward.

@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 21s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #8412
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/11/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 26s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #8412
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/12/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@ajfabbri
Copy link
Copy Markdown
Contributor

ajfabbri commented Apr 20, 2026

Next steps before we can merge this (edit: updated):

  • Not blocking since
    • we don't use pull_request_target to trigger writes (except status updater which can write checks, ok).
    • Both DockerHub and Github container registry are officially supported by GitHub with good documentation, so I'm assuming we're good here. I did file a JIRA to confirm with INFRA if they prefer Docker Hub or GHCR, and if they can install an environment secret for our repo:
      https://issues.apache.org/jira/browse/INFRA-27839
  • I can add my security comments in a future PR
  • Get CodeQL scanning merged with a clean run here before we merge this.

@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 22s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #8412
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/13/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@hadoop-yetus
Copy link
Copy Markdown

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 0s Docker mode activated.
-1 ❌ patch 0m 22s #8412 does not apply to trunk. Rebase required? Wrong Branch? See https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute for help.
Subsystem Report/Notes
GITHUB PR #8412
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/14/console
versions git=2.34.1
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 21, 2026

so CodeQL works? but no comments because it does not find negative issues?

@ajfabbri
Copy link
Copy Markdown
Contributor

so CodeQL works? but no comments because it does not find negative issues?

Yes, it looks good! No new warnings. Our existing actions have two.

Copy link
Copy Markdown
Contributor

@ajfabbri ajfabbri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I'm ready to approve this. Do you think it is ready?

I updated my #8412 (comment) on remaining tasks. I propose we:

  • Fix the rebase (CI is complaining about it). I can do this for you if you want, before merging.
  • I will follow up on my question to INFRA https://issues.apache.org/jira/browse/INFRA-27839. It shouldn't affect us now, but I'd like to make sure we're protected if there are other pull_request_target workflows added in the future.
  • I will add my security review comments in a separate PR (I am eager to add some stuff for S3A testing after this is merged!) (FWIW, updated here).

@slfan1989
Copy link
Copy Markdown
Contributor

@pan3793 @ajfabbri @steveloughran Thank you very much for your contribution! +1. I plan to start next week and can also participate in some of the work.

@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 22, 2026

Fix the rebase (CI is complaining about it)

@ajfabbri, it's likely a false-negative check result by Yetus, sometimes retry can fix it but it seems that does not work this time, I might need to squash the commit to make it happy

@pan3793 pan3793 force-pushed the HADOOP-19858 branch 2 times, most recently from c4cc606 to ba9c52c Compare April 22, 2026 03:18
@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 22, 2026

I will add my security review comments in a separate PR

@ajfabbri I just cherry-pick it into here. I didn't do that because it contained TODO previously, and is resolved now.


update: I reverted it, because I think it needs more discussion after a closer look. I will leave it to you to add them in a subsequent PR

# the upstream repo.
# - For `pull_request_target` (risky), the write permission is
# overridden by our repository's setting "Send write tokens to workflows
# from pull requests" which should be disabled.
Copy link
Copy Markdown
Member Author

@pan3793 pan3793 Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh wait, we still need this permission for workflows like "notify_test_workflow.yml", those workflows won't consume untrusted code, so they're safe to run

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes I mentioned that in my previous comment. I think it is ok here because (1) it is only write access for updating checks, (2) we are careful not to be careless with untrusted inputs, we don't checkout the fork, etc. (3) I have an issue open with INFRA to double-check our repositories defaults and security settings.

If the writing to checks fails due to restrictive repository settings, we can revisit it.

Copy link
Copy Markdown
Member Author

@pan3793 pan3793 Apr 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reverted the pull that includes this comment and restored the code to the snapshot that gets approval (with additional squash to make Yetus happy).

So, merge this PR as-is after Yetus is happy, and revise those comments later?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 works for me. I'll send out a PR with the comments after we get this merged and we confirm everything is working as expected.

@hadoop-yetus
Copy link
Copy Markdown

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 yamllint 0m 0s yamllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
_ trunk Compile Tests _
+1 💚 shadedclient 21m 31s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 shadedclient 16m 38s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 asflicense 0m 20s The patch does not generate ASF License warnings.
40m 14s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/20/artifact/out/Dockerfile
GITHUB PR #8412
Optional Tests dupname asflicense codespell detsecrets yamllint
uname Linux 57020d16d908 5.15.0-171-generic #181-Ubuntu SMP Fri Feb 6 22:44:50 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 7c6147c
Max. process+thread count 636 (vs. ulimit of 10000)
modules C: . U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8412/20/console
versions git=2.43.0 maven=3.9.11
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@pan3793 pan3793 merged commit eb8f005 into apache:trunk Apr 22, 2026
6 checks passed
@pan3793
Copy link
Copy Markdown
Member Author

pan3793 commented Apr 22, 2026

Thanks all, Yetus is green, merged to trunk

@ajfabbri
Copy link
Copy Markdown
Contributor

Woo hoo. Thanks for working together on this. Follow-up PR here: #8450

@pan3793 pan3793 deleted the HADOOP-19858 branch April 22, 2026 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants