Skip to content

chore(ci): rationalize CI into single workflow with unified comment#22247

Draft
gnodet wants to merge 4 commits intomainfrom
ci-merge-incremental-build-detect-dependencies
Draft

chore(ci): rationalize CI into single workflow with unified comment#22247
gnodet wants to merge 4 commits intomainfrom
ci-merge-incremental-build-detect-dependencies

Conversation

@gnodet
Copy link
Contributor

@gnodet gnodet commented Mar 24, 2026

Summary

Merge three separate CI actions (incremental-build, detect-dependencies, component-test) into one unified incremental-build.sh and simplify the workflow architecture. The change detection mechanism itself is unchanged — this is purely structural.

What changed

  • Merge detect-dependencies into incremental-build.sh — property change detection now runs inline, feeding its results into the same Maven invocation instead of a separate one
  • Merge /component-test into the main "Build and test" workflow via workflow_dispatch with extra_modules parameter
  • Replace inline PR comment with workflow_run commenter (pr-test-commenter.yml)
  • Remove dead labels (build-all, build-dependents) from the commenter welcome message
  • Add CI-ARCHITECTURE.md documenting the workflow structure

Benefits

  1. Single Maven invocation — previously, incremental-build and detect-dependencies ran as separate steps with independent Maven calls. Now both file-path-detected and POM-dependency-detected modules are combined into one mvn install, avoiding redundant reactor resolution and compilation.

  2. One unified PR comment — instead of up to 3 separate bot comments (incremental-build, detect-dependencies, component-test), there is now a single comment updated in place. This reduces noise and makes it easier to see what CI actually tested.

  3. Fork PR comments work — the inline actions/github-script comment step ran in the PR's context, which lacks pull-requests: write permission for fork PRs. The new workflow_run commenter (pr-test-commenter.yml) runs in the base repo context with proper permissions.

  4. /component-test reuses the full pipeline — instead of a separate action that only ran tests (skipping the build, regen, and uncommitted-changes checks), component-test now dispatches the same "Build and test" workflow with extra modules appended. This ensures component tests go through the same validation as PR builds.

  5. Concurrency group separation/component-test dispatches get a distinct concurrency group suffix (-component-test), so they don't cancel in-flight PR builds and vice versa.

  6. Less code to maintain — 3 actions → 1 action, 3 shell scripts → 1 script. The deleted detect-test.sh (96 lines) and component-test.sh (71 lines) are folded into incremental-build.sh.

Workflow overview

PR opened/updated
       │
       ├──► pr-id.yml ──► pr-commenter.yml (welcome message)
       │
       └──► pr-build-main.yml (Build and test)
                │
                ├── regen.sh (full build, no tests)
                ├── incremental-build (test affected modules)
                │       ├── File-path analysis
                │       ├── POM dependency analysis
                │       └── Extra modules (/component-test)
                │
                └──► pr-test-commenter.yml (post unified comment)

PR comment: /component-test kafka http
       │
       └──► pr-manual-component-test.yml
                │
                └── dispatches "Build and test" with extra_modules

Before → After

BEFORE (3 actions, up to 3 comments):
  pr-build-main.yml  →  incremental-build action  →  inline comment
                     →  detect-dependencies action →  separate comment
  pr-manual-component-test.yml  →  component-test action  →  yet another comment

AFTER (1 action, 1 comment):
  pr-build-main.yml  →  incremental-build action (unified)  →  artifact upload
  pr-test-commenter.yml  →  posts/updates single PR comment (works on forks)
  pr-manual-component-test.yml  →  dispatches pr-build-main with extra_modules

Files

  • Deleted: .github/actions/component-test/, .github/actions/detect-dependencies/
  • Added: .github/workflows/pr-test-commenter.yml, .github/CI-ARCHITECTURE.md
  • Modified: incremental-build/, pr-build-main.yml, pr-manual-component-test.yml, main-build.yml, pr-commenter.yml

Test plan

  • PR build triggers correctly on pull_request events
  • workflow_dispatch works for CI-only file changes (.github/** is in paths-ignore)
  • /component-test kafka dispatches the main workflow with correct extra_modules
  • Commenter workflow posts/updates a single unified comment on fork PRs
  • POM property change detection finds affected modules
  • skip-tests and test-dependents labels still work
  • Concurrency groups correctly separate PR builds from component-test runs

@github-actions
Copy link
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using build-all, build-dependents, skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@gnodet gnodet changed the title chore(ci): merge detect-dependencies into incremental-build chore(ci): unify CI test infrastructure Mar 25, 2026
@gnodet gnodet requested a review from oscerd March 25, 2026 07:27
Copy link
Contributor

@apupier apupier left a comment

Choose a reason for hiding this comment

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

I think we will need to be able to test it in some ways before merging as it is quite a complex change

Copy link
Contributor

@oscerd oscerd left a comment

Choose a reason for hiding this comment

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

This looks a really good improvement for maintainability. I think it would be important to have a document under .github folder where we show the architecture of our GH actions ecosystem. That way it could be used for knowledge in the future.

@gnodet
Copy link
Contributor Author

gnodet commented Mar 25, 2026

Claude Code on behalf of Guillaume Nodet

Regarding testing: since .github/** is in paths-ignore, this PR won't trigger the build workflow automatically. We can test via manual dispatch:

gh workflow run "Build and test" -f pr_number=22247 -f pr_ref=ci-merge-incremental-build-detect-dependencies

Regarding the architecture doc: added .github/CI-ARCHITECTURE.md with an overview of all workflows, actions, labels, and their relationships.

All review comments have been addressed:

  • actions/github-script pinned to hash
  • check-user-permission re-added
  • JDK 21 filter explained with inline comment

@apupier
Copy link
Contributor

apupier commented Mar 25, 2026

What is the output of the way indicated to test it?

@gnodet
Copy link
Contributor Author

gnodet commented Mar 25, 2026

Claude Code on behalf of Guillaume Nodet

The workflow_dispatch approach doesn't work for testing CI changes — it runs the workflow YAML from main, not the PR branch. The dispatched run used the old scripts and expectedly failed.

Pushed a dummy parent/pom.xml change to trigger the pull_request event, which will use our branch's workflow files. This also exercises the "parent pom changed" path of the new script. Will revert before merging.

@gnodet
Copy link
Contributor Author

gnodet commented Mar 25, 2026

🧪 CI tested the following changed modules:

  • components/camel-bean
  • parent

POM dependency changes: targeted tests included

Changed properties: arangodb-java-version

Modules affected by dependency changes (2)
  • :camel-arangodb
  • :camel-test-infra-arangodb
All tested modules (936 modules)
  • Camel :: AI :: ChatScript
  • Camel :: AI :: ChatScript [jar]
  • Camel :: AI :: Deep Java Library
  • Camel :: AI :: Deep Java Library [jar]
  • Camel :: AI :: Docling
  • Camel :: AI :: Docling [jar]
  • Camel :: AI :: Hugging Face
  • Camel :: AI :: Hugging Face [jar]
  • Camel :: AI :: KServe
  • Camel :: AI :: KServe [jar]
  • Camel :: AI :: LangChain4j :: Agent
  • Camel :: AI :: LangChain4j :: Agent [jar]
  • Camel :: AI :: LangChain4j :: Chat
  • Camel :: AI :: LangChain4j :: Chat [jar]
  • Camel :: AI :: LangChain4j :: Core
  • Camel :: AI :: LangChain4j :: Core [jar]
  • Camel :: AI :: LangChain4j :: Embedding
  • Camel :: AI :: LangChain4j :: Embedding [jar]
  • Camel :: AI :: LangChain4j :: EmbeddingStore
  • Camel :: AI :: LangChain4j :: EmbeddingStore [jar]
  • Camel :: AI :: LangChain4j :: Tokenizer
  • Camel :: AI :: LangChain4j :: Tokenizer [jar]
  • Camel :: AI :: LangChain4j :: Tools
  • Camel :: AI :: LangChain4j :: Tools [jar]
  • Camel :: AI :: LangChain4j :: Web Search
  • Camel :: AI :: LangChain4j :: Web Search [jar]
  • Camel :: AI :: Milvus
  • Camel :: AI :: Milvus [jar]
  • Camel :: AI :: Neo4j
  • Camel :: AI :: Neo4j [jar]
  • Camel :: AI :: OpenAI
  • Camel :: AI :: OpenAI [jar]
  • Camel :: AI :: Pinecone
  • Camel :: AI :: Pinecone [jar]
  • Camel :: AI :: Qdrant
  • Camel :: AI :: Qdrant [jar]
  • Camel :: AI :: TensorFlow Serving
  • Camel :: AI :: TensorFlow Serving [jar]
  • Camel :: AI :: Weaviate
  • Camel :: AI :: Weaviate [jar]
  • Camel :: AMQP
  • Camel :: AMQP [jar]
  • Camel :: AS2 :: API
  • Camel :: AS2 :: API [jar]
  • Camel :: AS2 :: Component
  • Camel :: AS2 :: Component [jar]
  • Camel :: ASN.1
  • Camel :: ASN.1 [jar]
  • Camel :: AWS :: XRay (deprecated)
  • Camel :: AWS :: XRay (deprecated) [jar]
  • Camel :: AWS Cloutrail
  • Camel :: AWS Cloutrail [jar]
  • Camel :: AWS Config
  • Camel :: AWS Config [jar]
  • Camel :: AWS Redshift Data
  • Camel :: AWS Redshift Data [jar]
  • Camel :: AWS Rekognition
  • Camel :: AWS Rekognition [jar]
  • Camel :: AWS Security Hub
  • Camel :: AWS Security Hub [jar]
  • Camel :: AWS Step Functions
  • Camel :: AWS Step Functions [jar]
  • Camel :: AWS Timestream
  • Camel :: AWS Timestream [jar]
  • Camel :: AWS2 :: Transcribe
  • Camel :: AWS2 :: Transcribe [jar]
  • Camel :: AWS2 Athena
  • Camel :: AWS2 Athena [jar]
  • Camel :: AWS2 Bedrock
  • Camel :: AWS2 Bedrock [jar]
  • Camel :: AWS2 CW
  • Camel :: AWS2 CW [jar]
  • Camel :: AWS2 Comprehend
  • Camel :: AWS2 Comprehend [jar]
  • Camel :: AWS2 DDB
  • Camel :: AWS2 DDB [jar]
  • Camel :: AWS2 EC2
  • Camel :: AWS2 EC2 [jar]
  • Camel :: AWS2 ECS
  • Camel :: AWS2 ECS [jar]
  • Camel :: AWS2 EKS
  • Camel :: AWS2 EKS [jar]
  • Camel :: AWS2 Eventbridge
  • Camel :: AWS2 Eventbridge [jar]
  • Camel :: AWS2 IAM
  • Camel :: AWS2 IAM [jar]
  • Camel :: AWS2 KMS
  • Camel :: AWS2 KMS [jar]
  • Camel :: AWS2 Kinesis
  • Camel :: AWS2 Kinesis [jar]
  • Camel :: AWS2 Lambda
  • Camel :: AWS2 Lambda [jar]
  • Camel :: AWS2 MQ
  • Camel :: AWS2 MQ [jar]
  • Camel :: AWS2 MSK
  • Camel :: AWS2 MSK [jar]
  • Camel :: AWS2 Parameter Store
  • Camel :: AWS2 Parameter Store [jar]
  • Camel :: AWS2 Polly
  • Camel :: AWS2 Polly [jar]
  • Camel :: AWS2 S3
  • Camel :: AWS2 S3 [jar]
  • Camel :: AWS2 S3 Vectors
  • Camel :: AWS2 S3 Vectors [jar]
  • Camel :: AWS2 SES
  • Camel :: AWS2 SES [jar]
  • Camel :: AWS2 SNS
  • Camel :: AWS2 SNS [jar]
  • Camel :: AWS2 SQS
  • Camel :: AWS2 SQS [jar]
  • Camel :: AWS2 STS
  • Camel :: AWS2 STS [jar]
  • Camel :: AWS2 Secrets Manager
  • Camel :: AWS2 Secrets Manager [jar]
  • Camel :: AWS2 Textract
  • Camel :: AWS2 Textract [jar]
  • Camel :: AWS2 Translate
  • Camel :: AWS2 Translate [jar]
  • Camel :: ActiveMQ 5.x
  • Camel :: ActiveMQ 5.x [jar]
  • Camel :: ActiveMQ 6.x
  • Camel :: ActiveMQ 6.x [jar]
  • Camel :: All Core Sync point
  • Camel :: All Core Sync point [pom]
  • Camel :: ArangoDB
  • Camel :: ArangoDB [jar]
  • Camel :: Archetypes
  • Camel :: Archetypes [pom]
  • Camel :: Archetypes :: API Component
  • Camel :: Archetypes :: API Component [maven-archetype]
  • Camel :: Archetypes :: Component
  • Camel :: Archetypes :: Component [maven-archetype]
  • Camel :: Archetypes :: Data Format
  • Camel :: Archetypes :: Data Format [maven-archetype]
  • Camel :: Archetypes :: Java Router
  • Camel :: Archetypes :: Java Router [maven-archetype]
  • Camel :: Archetypes :: Main
  • Camel :: Archetypes :: Main [maven-archetype]
  • Camel :: Archetypes :: Spring XML Based Router (deprecated) SKIPPED
  • Camel :: Archetypes :: Spring XML Based Router (deprecated) [maven-archetype]
  • Camel :: Asterisk
  • Camel :: Asterisk [jar]
  • Camel :: Atmosphere WebSocket Servlet
  • Camel :: Atmosphere WebSocket Servlet [jar]
  • Camel :: Atom
  • Camel :: Atom [jar]
  • Camel :: Attachments
  • Camel :: Attachments [jar]
  • Camel :: Avro
  • Camel :: Avro [jar]
  • Camel :: Avro RPC
  • Camel :: Avro RPC [jar]
  • Camel :: Azure :: CosmosDB
  • Camel :: Azure :: CosmosDB [jar]
  • Camel :: Azure :: Event Grid
  • Camel :: Azure :: Event Grid [jar]
  • Camel :: Azure :: Event Hubs
  • Camel :: Azure :: Event Hubs [jar]
  • Camel :: Azure :: Files
  • Camel :: Azure :: Files [jar]
  • Camel :: Azure :: Functions
  • Camel :: Azure :: Functions [jar]
  • Camel :: Azure :: Key Vault
  • Camel :: Azure :: Key Vault [jar]
  • Camel :: Azure :: Schema Registry
  • Camel :: Azure :: Schema Registry [jar]
  • Camel :: Azure :: ServiceBus
  • Camel :: Azure :: ServiceBus [jar]
  • Camel :: Azure :: Storage Blob
  • Camel :: Azure :: Storage Blob [jar]
  • Camel :: Azure :: Storage Datalake
  • Camel :: Azure :: Storage Datalake [jar]
  • Camel :: Azure :: Storage Queue
  • Camel :: Azure :: Storage Queue [jar]
  • Camel :: Barcode
  • Camel :: Barcode [jar]
  • Camel :: Base64
  • Camel :: Base64 [jar]
  • Camel :: Bean
  • Camel :: Bean [jar]
  • Camel :: Bean validator
  • Camel :: Bean validator [jar]
  • Camel :: BeanIO
  • Camel :: BeanIO [jar]
  • Camel :: Bindy
  • Camel :: Bindy [jar]
  • Camel :: Bonita
  • Camel :: Bonita [jar]
  • Camel :: Box :: Component
  • Camel :: Box :: Component [jar]
  • Camel :: Braintree
  • Camel :: Braintree [jar]
  • Camel :: CBOR
  • Camel :: CBOR [jar]
  • Camel :: CM SMS
  • Camel :: CM SMS [jar]
  • Camel :: CSV
  • Camel :: CSV [jar]
  • Camel :: CXF :: Common
  • Camel :: CXF :: Common [jar]
  • Camel :: CXF :: Common :: Spring
  • Camel :: CXF :: Common :: Spring [jar]
  • Camel :: CXF :: REST
  • Camel :: CXF :: REST [jar]
  • Camel :: CXF :: REST :: Spring
  • Camel :: CXF :: REST :: Spring [jar]
  • Camel :: CXF :: SOAP
  • Camel :: CXF :: SOAP [jar]
  • Camel :: CXF :: SOAP :: Spring
  • Camel :: CXF :: SOAP :: Spring [jar]
  • Camel :: CXF :: Transport
  • Camel :: CXF :: Transport [jar]
  • Camel :: CXF :: Transport :: Spring
  • Camel :: CXF :: Transport :: Spring [jar]
  • Camel :: Caffeine
  • Camel :: Caffeine [jar]
  • Camel :: Cassandra CQL
  • Camel :: Cassandra CQL [jar]
  • Camel :: Chunk
  • Camel :: Chunk [jar]
  • Camel :: ClickUp
  • Camel :: ClickUp [jar]
  • Camel :: CloudEvents
  • Camel :: CloudEvents [jar]
  • Camel :: CoAP
  • Camel :: CoAP [jar]
  • Camel :: Cometd
  • Camel :: Cometd [jar]
  • Camel :: Common Telemetry
  • Camel :: Common Telemetry [jar]
  • Camel :: Common Tracing (deprecated)
  • Camel :: Common Tracing (deprecated) [jar]
  • Camel :: Console
  • Camel :: Console [jar]
  • Camel :: Consul
  • Camel :: Consul [jar]
  • Camel :: Core
  • Camel :: Core [jar]
  • Camel :: CouchDB
  • Camel :: CouchDB [jar]
  • Camel :: Couchbase
  • Camel :: Couchbase [jar]
  • Camel :: Cron
  • Camel :: Cron [jar]
  • Camel :: Crypto
  • Camel :: Crypto [jar]
  • Camel :: Crypto PGP
  • Camel :: Crypto PGP [jar]
  • Camel :: CyberArk Vault
  • Camel :: CyberArk Vault [jar]
  • Camel :: DFDL
  • Camel :: DFDL [jar]
  • Camel :: DHIS2
  • Camel :: DHIS2 [jar]
  • Camel :: DHIS2 :: Parent
  • Camel :: DHIS2 :: Parent [pom]
  • Camel :: DHIS2 API
  • Camel :: DHIS2 API [jar]
  • Camel :: DNS
  • Camel :: DNS [jar]
  • Camel :: DSL :: CLI Connector
  • Camel :: DSL :: CLI Connector [jar]
  • Camel :: DSL :: CLI Debug
  • Camel :: DSL :: CLI Debug [jar]
  • Camel :: DSL :: Modeline
  • Camel :: DSL :: Modeline [jar]
  • Camel :: Dapr
  • Camel :: Dapr [jar]
  • Camel :: DataSonnet
  • Camel :: DataSonnet [jar]
  • Camel :: Debezium :: Common
  • Camel :: Debezium :: Common [jar]
  • Camel :: Debezium :: DB2
  • Camel :: Debezium :: DB2 [jar]
  • Camel :: Debezium :: Maven Plugin
  • Camel :: Debezium :: Maven Plugin [maven-plugin]
  • Camel :: Debezium :: MongoDB
  • Camel :: Debezium :: MongoDB [jar]
  • Camel :: Debezium :: MySQL
  • Camel :: Debezium :: MySQL [jar]
  • Camel :: Debezium :: Oracle
  • Camel :: Debezium :: Oracle [jar]
  • Camel :: Debezium :: PostgreSQL
  • Camel :: Debezium :: PostgreSQL [jar]
  • Camel :: Debezium :: SQL Server
  • Camel :: Debezium :: SQL Server [jar]
  • Camel :: Debugging
  • Camel :: Debugging [jar]
  • Camel :: DigitalOcean
  • Camel :: DigitalOcean [jar]
  • Camel :: Disruptor
  • Camel :: Disruptor [jar]
  • Camel :: Docker
  • Camel :: Docker [jar]
  • Camel :: Drill
  • Camel :: Drill [jar]
  • Camel :: Dropbox
  • Camel :: Dropbox [jar]
  • Camel :: Dynamic Router
  • Camel :: Dynamic Router [jar]
  • Camel :: Ehcache
  • Camel :: Ehcache [jar]
  • Camel :: ElasticSearch Java API Client
  • Camel :: ElasticSearch Java API Client [jar]
  • Camel :: ElasticSearch Rest Client
  • Camel :: ElasticSearch Rest Client [jar]
  • Camel :: Elytron (deprecated)
  • Camel :: Elytron (deprecated) [jar]
  • Camel :: Event
  • Camel :: Event [jar]
  • Camel :: Exec
  • Camel :: Exec [jar]
  • Camel :: FHIR
  • Camel :: FHIR [jar]
  • Camel :: FOP
  • Camel :: FOP [jar]
  • Camel :: FTP
  • Camel :: FTP [jar]
  • Camel :: Fastjson
  • Camel :: Fastjson [jar]
  • Camel :: File Watch
  • Camel :: File Watch [jar]
  • Camel :: FlatPack
  • Camel :: FlatPack [jar]
  • Camel :: Flink
  • Camel :: Flink [jar]
  • Camel :: Flowable
  • Camel :: Flowable [jar]
  • Camel :: Fory
  • Camel :: Fory [jar]
  • Camel :: Freemarker
  • Camel :: Freemarker [jar]
  • Camel :: Geocoder
  • Camel :: Geocoder [jar]
  • Camel :: Git
  • Camel :: Git [jar]
  • Camel :: GitHub
  • Camel :: GitHub [jar]
  • Camel :: GitHub2
  • Camel :: GitHub2 [jar]
  • Camel :: Google :: BigQuery
  • Camel :: Google :: BigQuery [jar]
  • Camel :: Google :: Calendar
  • Camel :: Google :: Calendar [jar]
  • Camel :: Google :: Common
  • Camel :: Google :: Common [jar]
  • Camel :: Google :: Drive
  • Camel :: Google :: Drive [jar]
  • Camel :: Google :: Firestore
  • Camel :: Google :: Firestore [jar]
  • Camel :: Google :: Functions
  • Camel :: Google :: Functions [jar]
  • Camel :: Google :: Mail
  • Camel :: Google :: Mail [jar]
  • Camel :: Google :: PubSub
  • Camel :: Google :: PubSub [jar]
  • Camel :: Google :: Secret Manager
  • Camel :: Google :: Secret Manager [jar]
  • Camel :: Google :: Sheets
  • Camel :: Google :: Sheets [jar]
  • Camel :: Google :: Speech To Text
  • Camel :: Google :: Speech To Text [jar]
  • Camel :: Google :: Storage
  • Camel :: Google :: Storage [jar]
  • Camel :: Google :: Text To Speech
  • Camel :: Google :: Text To Speech [jar]
  • Camel :: Google :: Vertex AI
  • Camel :: Google :: Vertex AI [jar]
  • Camel :: Google :: Vision
  • Camel :: Google :: Vision [jar]
  • Camel :: Grape (deprecated)
  • Camel :: Grape (deprecated) [jar]
  • Camel :: GraphQL
  • Camel :: GraphQL [jar]
  • Camel :: Grok
  • Camel :: Grok [jar]
  • Camel :: Groovy
  • Camel :: Groovy [jar]
  • Camel :: Gson
  • Camel :: Gson [jar]
  • Camel :: Guava-EventBus (deprecated)
  • Camel :: Guava-EventBus (deprecated) [jar]
  • Camel :: HL7
  • Camel :: HL7 [jar]
  • Camel :: HTTP
  • Camel :: HTTP [jar]
  • Camel :: HTTP :: Base
  • Camel :: HTTP :: Base [jar]
  • Camel :: HTTP :: Common
  • Camel :: HTTP :: Common [jar]
  • Camel :: Hashicorp :: Key Vault
  • Camel :: Hashicorp :: Key Vault [jar]
  • Camel :: HazelCast
  • Camel :: HazelCast [jar]
  • Camel :: Headers Map
  • Camel :: Headers Map [jar]
  • Camel :: Huawei Cloud :: DMS
  • Camel :: Huawei Cloud :: DMS [jar]
  • Camel :: Huawei Cloud :: FaceRecognition
  • Camel :: Huawei Cloud :: FaceRecognition [jar]
  • Camel :: Huawei Cloud :: FunctionGraph
  • Camel :: Huawei Cloud :: FunctionGraph [jar]
  • Camel :: Huawei Cloud :: IAM
  • Camel :: Huawei Cloud :: IAM [jar]
  • Camel :: Huawei Cloud :: ImageRecognition
  • Camel :: Huawei Cloud :: ImageRecognition [jar]
  • Camel :: Huawei Cloud :: OBS
  • Camel :: Huawei Cloud :: OBS [jar]
  • Camel :: Huawei Cloud :: SimpleNotification
  • Camel :: Huawei Cloud :: SimpleNotification [jar]
  • Camel :: IBM :: Cloud Object Storage
  • Camel :: IBM :: Cloud Object Storage [jar]
  • Camel :: IBM :: Secrets Manager
  • Camel :: IBM :: Secrets Manager [jar]
  • Camel :: IBM :: Watson Discovery
  • Camel :: IBM :: Watson Discovery [jar]
  • Camel :: IBM :: Watson Language
  • Camel :: IBM :: Watson Language [jar]
  • Camel :: IBM :: Watson Speech to Text
  • Camel :: IBM :: Watson Speech to Text [jar]
  • Camel :: IBM :: Watson Text to Speech
  • Camel :: IBM :: Watson Text to Speech [jar]
  • Camel :: IBM :: watsonx.ai
  • Camel :: IBM :: watsonx.ai [jar]
  • Camel :: IEC 60870
  • Camel :: IEC 60870 [jar]
  • Camel :: IRC
  • Camel :: IRC [jar]
  • Camel :: ISO-8583
  • Camel :: ISO-8583 [jar]
  • Camel :: Iggy
  • Camel :: Iggy [jar]
  • Camel :: Ignite
  • Camel :: Ignite [jar]
  • Camel :: Infinispan :: Common
  • Camel :: Infinispan :: Common [jar]
  • Camel :: Infinispan :: Embedded
  • Camel :: Infinispan :: Embedded [jar]
  • Camel :: Infinispan :: Remote
  • Camel :: Infinispan :: Remote [jar]
  • Camel :: InfluxDB
  • Camel :: InfluxDB [jar]
  • Camel :: InfluxDB2
  • Camel :: InfluxDB2 [jar]
  • Camel :: Integration Tests :: Stream Caching Tests
  • Camel :: Integration Tests :: Stream Caching Tests [jar]
  • Camel :: IronMQ
  • Camel :: IronMQ [jar]
  • Camel :: JAXB
  • Camel :: JAXB [jar]
  • Camel :: JBang :: Console
  • Camel :: JBang :: Console [jar]
  • Camel :: JBang :: MCP
  • Camel :: JBang :: MCP [jar]
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: Route Parser [jar]
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: JBang :: Plugin :: Validate [jar]
  • Camel :: JCR
  • Camel :: JCR [jar]
  • Camel :: JCache
  • Camel :: JCache [jar]
  • Camel :: JDBC
  • Camel :: JDBC [jar]
  • Camel :: JGroups
  • Camel :: JGroups [jar]
  • Camel :: JGroups Raft
  • Camel :: JGroups Raft [jar]
  • Camel :: JIRA
  • Camel :: JIRA [jar]
  • Camel :: JMS
  • Camel :: JMS [jar]
  • Camel :: JMX
  • Camel :: JMX [jar]
  • Camel :: JOOQ
  • Camel :: JOOQ [jar]
  • Camel :: JPA
  • Camel :: JPA [jar]
  • Camel :: JQ
  • Camel :: JQ [jar]
  • Camel :: JSON validator
  • Camel :: JSON validator [jar]
  • Camel :: JSON-B
  • Camel :: JSON-B [jar]
  • Camel :: JSONATA
  • Camel :: JSONATA [jar]
  • Camel :: JSon Path
  • Camel :: JSon Path [jar]
  • Camel :: JSonApi
  • Camel :: JSonApi [jar]
  • Camel :: JTA
  • Camel :: JTA [jar]
  • Camel :: Jackson
  • Camel :: Jackson [jar]
  • Camel :: Jackson 3
  • Camel :: Jackson 3 [jar]
  • Camel :: Jackson 3 Avro
  • Camel :: Jackson 3 Avro [jar]
  • Camel :: Jackson 3 Protobuf
  • Camel :: Jackson 3 Protobuf [jar]
  • Camel :: Jackson 3 XML
  • Camel :: Jackson 3 XML [jar]
  • Camel :: Jackson Avro
  • Camel :: Jackson Avro [jar]
  • Camel :: Jackson Protobuf
  • Camel :: Jackson Protobuf [jar]
  • Camel :: Jackson XML
  • Camel :: Jackson XML [jar]
  • Camel :: Jandex
  • Camel :: Jandex [jar]
  • Camel :: Jasypt
  • Camel :: Jasypt [jar]
  • Camel :: Java DSL with jOOR
  • Camel :: Java DSL with jOOR [jar]
  • Camel :: Java Flight Recorder
  • Camel :: Java Flight Recorder [jar]
  • Camel :: Java Template Engine
  • Camel :: Java Template Engine [jar]
  • Camel :: Java Toolbox for IBM i
  • Camel :: Java Toolbox for IBM i [jar]
  • Camel :: JavaScript
  • Camel :: JavaScript [jar]
  • Camel :: Jetty
  • Camel :: Jetty [jar]
  • Camel :: Jetty :: Common
  • Camel :: Jetty :: Common [jar]
  • Camel :: Jolt
  • Camel :: Jolt [jar]
  • Camel :: Jsch
  • Camel :: Jsch [jar]
  • Camel :: Jslt
  • Camel :: Jslt [jar]
  • Camel :: JsonPatch (deprecated)
  • Camel :: JsonPatch (deprecated) [jar]
  • Camel :: Kafka
  • Camel :: Kafka [jar]
  • Camel :: Kamelet
  • Camel :: Kamelet [jar]
  • Camel :: Kamelet Main :: Support
  • Camel :: Kamelet Main :: Support [jar]
  • Camel :: Keycloak
  • Camel :: Keycloak [jar]
  • Camel :: Knative API
  • Camel :: Knative API [jar]
  • Camel :: Knative Component
  • Camel :: Knative Component [jar]
  • Camel :: Knative HTTP
  • Camel :: Knative HTTP [jar]
  • Camel :: Kubernetes
  • Camel :: Kubernetes [jar]
  • Camel :: Kudu
  • Camel :: Kudu [jar]
  • Camel :: LDAP
  • Camel :: LDAP [jar]
  • Camel :: LDIF
  • Camel :: LDIF [jar]
  • Camel :: LZF
  • Camel :: LZF [jar]
  • Camel :: Launcher :: Container
  • Camel :: Launcher :: Container [pom]
  • Camel :: LevelDB (deprecated)
  • Camel :: LevelDB (deprecated) [jar]
  • Camel :: Long-Running-Action
  • Camel :: Long-Running-Action [jar]
  • Camel :: Lucene
  • Camel :: Lucene [jar]
  • Camel :: Lumberjack
  • Camel :: Lumberjack [jar]
  • Camel :: MDC
  • Camel :: MDC [jar]
  • Camel :: MINA
  • Camel :: MINA [jar]
  • Camel :: MINA SFTP
  • Camel :: MINA SFTP [jar]
  • Camel :: MLLP
  • Camel :: MLLP [jar]
  • Camel :: MVEL
  • Camel :: MVEL [jar]
  • Camel :: Mail
  • Camel :: Mail [jar]
  • Camel :: Mail :: Microsoft OAuth
  • Camel :: Mail :: Microsoft OAuth [jar]
  • Camel :: Main
  • Camel :: Main [jar]
  • Camel :: Management
  • Camel :: Management [jar]
  • Camel :: Mapstruct
  • Camel :: Mapstruct [jar]
  • Camel :: Master
  • Camel :: Master [jar]
  • Camel :: Maven Plugins :: Camel API Component Plugin [maven-plugin]
  • Camel :: Maven Plugins :: Camel API Component Plugin SUCCESS [ 7.476 s]
  • Camel :: Maven Plugins :: Camel Maven Plugin
  • Camel :: Maven Plugins :: Camel Maven Plugin [maven-plugin]
  • Camel :: Maven Plugins :: OpenApi REST DSL Generator [maven-plugin]
  • Camel :: Maven Plugins :: OpenApi REST DSL Generator SKIPPED
  • Camel :: Metrics
  • Camel :: Metrics [jar]
  • Camel :: MicroProfile :: Config
  • Camel :: MicroProfile :: Config [jar]
  • Camel :: MicroProfile :: Fault Tolerance
  • Camel :: MicroProfile :: Fault Tolerance [jar]
  • Camel :: MicroProfile :: Health
  • Camel :: MicroProfile :: Health [jar]
  • Camel :: Micrometer
  • Camel :: Micrometer [jar]
  • Camel :: Micrometer :: Observability 2
  • Camel :: Micrometer :: Observability 2 [jar]
  • Camel :: Micrometer :: Observation (deprecated)
  • Camel :: Micrometer :: Observation (deprecated) [jar]
  • Camel :: Micrometer :: Prometheus
  • Camel :: Micrometer :: Prometheus [jar]
  • Camel :: Milo
  • Camel :: Milo [jar]
  • Camel :: MinIO
  • Camel :: MinIO [jar]
  • Camel :: MongoDB
  • Camel :: MongoDB [jar]
  • Camel :: MongoDB GridFS
  • Camel :: MongoDB GridFS [jar]
  • Camel :: Mustache
  • Camel :: Mustache [jar]
  • Camel :: MyBatis
  • Camel :: MyBatis [jar]
  • Camel :: Nats
  • Camel :: Nats [jar]
  • Camel :: Netty
  • Camel :: Netty [jar]
  • Camel :: Netty HTTP
  • Camel :: Netty HTTP [jar]
  • Camel :: OAIPMH
  • Camel :: OAIPMH [jar]
  • Camel :: OAuth
  • Camel :: OAuth [jar]
  • Camel :: OCSF
  • Camel :: OCSF [jar]
  • Camel :: OGNL (deprecated)
  • Camel :: OGNL (deprecated) [jar]
  • Camel :: Observability Services
  • Camel :: Observability Services [jar]
  • Camel :: Olingo2 (Deprecated) :: API
  • Camel :: Olingo2 (Deprecated) :: API [jar]
  • Camel :: Olingo2 (Deprecated) :: Component
  • Camel :: Olingo2 (Deprecated) :: Component [jar]
  • Camel :: Olingo4 (Deprecated) :: API
  • Camel :: Olingo4 (Deprecated) :: API [jar]
  • Camel :: Olingo4 (Deprecated) :: Component
  • Camel :: Olingo4 (Deprecated) :: Component [jar]
  • Camel :: Once
  • Camel :: Once [jar]
  • Camel :: OpenAPI :: Validator
  • Camel :: OpenAPI :: Validator [jar]
  • Camel :: OpenApi Java
  • Camel :: OpenApi Java [jar]
  • Camel :: OpenSearch Java API Client
  • Camel :: OpenSearch Java API Client [jar]
  • Camel :: OpenStack
  • Camel :: OpenStack [jar]
  • Camel :: OpenTelemetry (deprecated)
  • Camel :: OpenTelemetry (deprecated) [jar]
  • Camel :: Opentelemetry 2
  • Camel :: Opentelemetry 2 [jar]
  • Camel :: Opentelemetry Metrics
  • Camel :: Opentelemetry Metrics [jar]
  • Camel :: OptaPlanner
  • Camel :: OptaPlanner [jar]
  • Camel :: PDF
  • Camel :: PDF [jar]
  • Camel :: PLC4X
  • Camel :: PLC4X [jar]
  • Camel :: PQC
  • Camel :: PQC [jar]
  • Camel :: Paho
  • Camel :: Paho [jar]
  • Camel :: Paho MQTT 5
  • Camel :: Paho MQTT 5 [jar]
  • Camel :: Parquet Avro
  • Camel :: Parquet Avro [jar]
  • Camel :: PgEvent
  • Camel :: PgEvent [jar]
  • Camel :: PgReplicationSlot
  • Camel :: PgReplicationSlot [jar]
  • Camel :: Platform HTTP
  • Camel :: Platform HTTP [jar]
  • Camel :: Platform HTTP :: Jolokia
  • Camel :: Platform HTTP :: Jolokia [jar]
  • Camel :: Platform HTTP :: Main
  • Camel :: Platform HTTP :: Main [jar]
  • Camel :: Platform HTTP :: Vert.x
  • Camel :: Platform HTTP :: Vert.x [jar]
  • Camel :: Printer
  • Camel :: Printer [jar]
  • Camel :: Protobuf
  • Camel :: Protobuf [jar]
  • Camel :: PubNub
  • Camel :: PubNub [jar]
  • Camel :: Pulsar
  • Camel :: Pulsar [jar]
  • Camel :: Python
  • Camel :: Python [jar]
  • Camel :: Quartz
  • Camel :: Quartz [jar]
  • Camel :: QuickFIX/J
  • Camel :: QuickFIX/J [jar]
  • Camel :: REST OpenApi
  • Camel :: REST OpenApi [jar]
  • Camel :: RSS
  • Camel :: RSS [jar]
  • Camel :: Reactive Executor :: Tomcat
  • Camel :: Reactive Executor :: Tomcat [jar]
  • Camel :: Reactive Executor :: Vert.x
  • Camel :: Reactive Executor :: Vert.x [jar]
  • Camel :: Reactive Streams
  • Camel :: Reactive Streams [jar]
  • Camel :: Reactor
  • Camel :: Reactor [jar]
  • Camel :: Redis
  • Camel :: Redis [jar]
  • Camel :: Resilience4j
  • Camel :: Resilience4j [jar]
  • Camel :: Resilience4j :: Micrometer
  • Camel :: Resilience4j :: Micrometer [jar]
  • Camel :: ResourceResolver GitHub
  • Camel :: ResourceResolver GitHub [jar]
  • Camel :: RobotFramework
  • Camel :: RobotFramework [jar]
  • Camel :: RocketMQ
  • Camel :: RocketMQ [jar]
  • Camel :: RxJava
  • Camel :: RxJava [jar]
  • Camel :: SAP NetWeaver
  • Camel :: SAP NetWeaver [jar]
  • Camel :: SMB
  • Camel :: SMB [jar]
  • Camel :: SMPP
  • Camel :: SMPP [jar]
  • Camel :: SNMP
  • Camel :: SNMP [jar]
  • Camel :: SOAP
  • Camel :: SOAP [jar]
  • Camel :: SQL
  • Camel :: SQL [jar]
  • Camel :: SSH
  • Camel :: SSH [jar]
  • Camel :: SWIFT
  • Camel :: SWIFT [jar]
  • Camel :: Salesforce
  • Camel :: Salesforce [jar]
  • Camel :: Salesforce :: CodeGen
  • Camel :: Salesforce :: CodeGen [jar]
  • Camel :: Salesforce :: Maven Plugin
  • Camel :: Salesforce :: Maven Plugin [maven-plugin]
  • Camel :: Saxon
  • Camel :: Saxon [jar]
  • Camel :: Schematron
  • Camel :: Schematron [jar]
  • Camel :: ServiceNow :: Component
  • Camel :: ServiceNow :: Component [jar]
  • Camel :: ServiceNow :: Maven Plugin
  • Camel :: ServiceNow :: Maven Plugin [maven-plugin]
  • Camel :: Servlet
  • Camel :: Servlet [jar]
  • Camel :: Shiro
  • Camel :: Shiro [jar]
  • Camel :: Simple JMS
  • Camel :: Simple JMS [jar]
  • Camel :: Simple JMS2
  • Camel :: Simple JMS2 [jar]
  • Camel :: Slack
  • Camel :: Slack [jar]
  • Camel :: Smooks :: Parent
  • Camel :: Smooks :: Parent [jar]
  • Camel :: SnakeYAML
  • Camel :: SnakeYAML [jar]
  • Camel :: Solr
  • Camel :: Solr [jar]
  • Camel :: Splunk
  • Camel :: Splunk [jar]
  • Camel :: Splunk HEC
  • Camel :: Splunk HEC [jar]
  • Camel :: Spring
  • Camel :: Spring [jar]
  • Camel :: Spring AI :: Chat
  • Camel :: Spring AI :: Chat [jar]
  • Camel :: Spring AI :: Embeddings
  • Camel :: Spring AI :: Embeddings [jar]
  • Camel :: Spring AI :: Image
  • Camel :: Spring AI :: Image [jar]
  • Camel :: Spring AI :: Tools
  • Camel :: Spring AI :: Tools [jar]
  • Camel :: Spring AI :: Vector Store
  • Camel :: Spring AI :: Vector Store [jar]
  • Camel :: Spring Batch
  • Camel :: Spring Batch [jar]
  • Camel :: Spring Cloud Config
  • Camel :: Spring Cloud Config [jar]
  • Camel :: Spring JDBC
  • Camel :: Spring JDBC [jar]
  • Camel :: Spring LDAP
  • Camel :: Spring LDAP [jar]
  • Camel :: Spring Main
  • Camel :: Spring Main [jar]
  • Camel :: Spring RabbitMQ
  • Camel :: Spring RabbitMQ [jar]
  • Camel :: Spring Redis
  • Camel :: Spring Redis [jar]
  • Camel :: Spring Security
  • Camel :: Spring Security [jar]
  • Camel :: Spring Web Services
  • Camel :: Spring Web Services [jar]
  • Camel :: Spring XML
  • Camel :: Spring XML [jar]
  • Camel :: StAX
  • Camel :: StAX [jar]
  • Camel :: Stitch
  • Camel :: Stitch [jar]
  • Camel :: Stomp (Deprecated)
  • Camel :: Stomp (Deprecated) [jar]
  • Camel :: Stream
  • Camel :: Stream [jar]
  • Camel :: StringTemplate
  • Camel :: StringTemplate [jar]
  • Camel :: Stripe
  • Camel :: Stripe [jar]
  • Camel :: Syslog
  • Camel :: Syslog [jar]
  • Camel :: Tahu
  • Camel :: Tahu [jar]
  • Camel :: Tar File
  • Camel :: Tar File [jar]
  • Camel :: Telegram
  • Camel :: Telegram [jar]
  • Camel :: Telemetry :: Dev
  • Camel :: Telemetry :: Dev [jar]
  • Camel :: Test :: JUnit5
  • Camel :: Test :: JUnit5 [jar]
  • Camel :: Test :: JUnit6
  • Camel :: Test :: JUnit6 [jar]
  • Camel :: Test :: Main :: JUnit5
  • Camel :: Test :: Main :: JUnit5 [jar]
  • Camel :: Test :: Main :: JUnit6
  • Camel :: Test :: Main :: JUnit6 [jar]
  • Camel :: Test :: Spring :: JUnit5
  • Camel :: Test :: Spring :: JUnit5 [jar]
  • Camel :: Test Infra :: All test services
  • Camel :: Test Infra :: All test services [jar]
  • Camel :: Test Infra :: ArangoDB
  • Camel :: Test Infra :: ArangoDB [jar]
  • Camel :: Test Infra :: Artemis
  • Camel :: Test Infra :: Artemis [jar]
  • Camel :: Test Infra :: Core
  • Camel :: Test Infra :: Core [jar]
  • Camel :: Test Infra :: Server Message Block
  • Camel :: Test Infra :: Server Message Block [jar]
  • Camel :: Thread Pool Factory :: Vert.x
  • Camel :: Thread Pool Factory :: Vert.x [jar]
  • Camel :: Thrift
  • Camel :: Thrift [jar]
  • Camel :: Thymeleaf
  • Camel :: Thymeleaf [jar]
  • Camel :: Tika
  • Camel :: Tika [jar]
  • Camel :: Twilio
  • Camel :: Twilio [jar]
  • Camel :: Twitter
  • Camel :: Twitter [jar]
  • Camel :: Undertow
  • Camel :: Undertow [jar]
  • Camel :: Undertow Spring Security
  • Camel :: Undertow Spring Security [jar]
  • Camel :: UniVocity Parsers
  • Camel :: UniVocity Parsers [jar]
  • Camel :: Velocity
  • Camel :: Velocity [jar]
  • Camel :: Vert.x :: HTTP
  • Camel :: Vert.x :: HTTP [jar]
  • Camel :: Vert.x :: WebSocket
  • Camel :: Vert.x :: WebSocket [jar]
  • Camel :: Vertx
  • Camel :: Vertx [jar]
  • Camel :: Wasm
  • Camel :: Wasm [jar]
  • Camel :: Weather
  • Camel :: Weather [jar]
  • Camel :: Web3j
  • Camel :: Web3j [jar]
  • Camel :: Webhook
  • Camel :: Webhook [jar]
  • Camel :: Whatsapp
  • Camel :: Whatsapp [jar]
  • Camel :: Wordpress
  • Camel :: Wordpress [jar]
  • Camel :: Workday
  • Camel :: Workday [jar]
  • Camel :: XChange
  • Camel :: XChange [jar]
  • Camel :: XJ
  • Camel :: XJ [jar]
  • Camel :: XML DSL Jaxb :: Test :: Definition
  • Camel :: XML DSL Jaxb :: Test :: Definition [jar]
  • Camel :: XML DSL Jaxb :: Test :: Spring
  • Camel :: XML DSL Jaxb :: Test :: Spring [jar]
  • Camel :: XML DSL with camel-xml-io
  • Camel :: XML DSL with camel-xml-io [jar]
  • Camel :: XML DSL with camel-xml-jaxb
  • Camel :: XML DSL with camel-xml-jaxb [jar]
  • Camel :: XML Security
  • Camel :: XML Security [jar]
  • Camel :: XMPP
  • Camel :: XMPP [jar]
  • Camel :: XSLT Saxon
  • Camel :: XSLT Saxon [jar]
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator [jar]
  • Camel :: YAML DSL :: Validator Maven Plugin
  • Camel :: YAML DSL :: Validator Maven Plugin [maven-plugin]
  • Camel :: Zeebe
  • Camel :: Zeebe [jar]
  • Camel :: Zendesk
  • Camel :: Zendesk [jar]
  • Camel :: Zip Deflater
  • Camel :: Zip Deflater [jar]
  • Camel :: Zip File
  • Camel :: Zip File [jar]
  • Camel :: Zookeeper
  • Camel :: Zookeeper [jar]
  • Camel :: Zookeeper Master
  • Camel :: Zookeeper Master [jar]
  • Camel :: csimple jOOR (deprecated)
  • Camel :: csimple jOOR (deprecated) [jar]
  • Camel :: gRPC
  • Camel :: gRPC [jar]
  • Camel :: iCal
  • Camel :: iCal [jar]
  • Camel :: jOOR
  • Camel :: jOOR [jar]

Copy link
Contributor

@apupier apupier left a comment

Choose a reason for hiding this comment

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

by looking to the genrated output, some feedback:

  • inside the build log, there are some tests played:
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.apache.camel.catalog.CamelCatalogCacheTest
[INFO] Tests run: 98, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.953 s -- in org.apache.camel.catalog.CamelCatalogCacheTest
[INFO] Running org.apache.camel.catalog.CamelCatalogJsonSchemaTest
[INFO] Tests run: 755, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.966 s -- in org.apache.camel.catalog.CamelCatalogJsonSchemaTest
[INFO] Running org.apache.camel.catalog.CamelCatalogTest
[INFO] Tests run: 98, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.057 s -- in org.apache.camel.catalog.CamelCatalogTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 951, Failures: 0, Errors: 0, Skipped: 0
  • given that the changes wasn't impacting a component dependency, there are no tests played in the incremental-test, which I think is the main objective of reworking on this github actions. So we still do not know if it is working now.
  • unless I missed some parts, we do not know if the /component-test feature is still working

so unless a human takes the responsibility to monitor the result after the merge and be ready to revert in case of problem, I think this is still not ready to be merged

@gnodet gnodet marked this pull request as draft March 26, 2026 10:14
gnodet added a commit that referenced this pull request Mar 26, 2026
This reverts the detect-dependencies CI action back to its original
implementation. The reworked version is causing issues in CI.
A proper fix will be done in #22247.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gnodet gnodet force-pushed the ci-merge-incremental-build-detect-dependencies branch from 070c8c3 to 989fe6f Compare March 26, 2026 10:52
gnodet added a commit that referenced this pull request Mar 26, 2026
Reverts the detect-dependencies CI action back to its original
implementation. The reworked version was causing issues in CI.
A proper fix will be done in #22247.
@gnodet gnodet force-pushed the ci-merge-incremental-build-detect-dependencies branch from 989fe6f to 265f055 Compare March 26, 2026 16:37
@gnodet gnodet changed the title chore(ci): unify CI test infrastructure chore(ci): rationalize CI into single workflow with unified comment Mar 26, 2026
@gnodet gnodet force-pushed the ci-merge-incremental-build-detect-dependencies branch from 265f055 to 9e69933 Compare March 26, 2026 16:44
@gnodet gnodet force-pushed the ci-merge-incremental-build-detect-dependencies branch 2 times, most recently from 49ebd68 to 8cc70dd Compare March 26, 2026 16:57
Merge three separate CI actions (incremental-build, detect-dependencies,
component-test) into one unified incremental-build script and simplify
the workflow architecture.

Deleted:
  .github/actions/component-test/
  .github/actions/detect-dependencies/

Added:
  .github/workflows/pr-test-commenter.yml
  .github/CI-ARCHITECTURE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gnodet gnodet force-pushed the ci-merge-incremental-build-detect-dependencies branch from 8cc70dd to 463ac2d Compare March 26, 2026 17:13
- Restore maxNumberOfTestableProjects to 50 (was accidentally changed to 1000)
- Restore root project change handling: exit early with informative comment
- Restrict POM dependency analysis to parent/pom.xml only (matches original
  detect-test.sh behavior; detection improvements deferred to follow-up PR)
- Add explicit comment about intentional Toolbox removal (pre-#22022 approach)
- Add skip_full_build input for /component-test dispatches to avoid full
  regen.sh build (uses quick targeted build with -Dquickly instead)
- Document multi-JDK artifact upload behavior (intentional overwrite for
  resilience when one JDK fails)
- Update CI-ARCHITECTURE.md to reflect all changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…epo default

- Fix bash arithmetic error when ./mvnw pipeline fails with pipefail:
  wc -l output was concatenated with the || echo "0" fallback, producing
  multi-line values like "24\n0" that broke the [[ -gt ]] comparison.
- Change github-repo action input default from hardcoded 'apache/camel'
  to ${{ github.repository }} for fork compatibility.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gnodet
Copy link
Contributor Author

gnodet commented Mar 26, 2026

Fork Testing Report

Claude Code on behalf of Guillaume Nodet

Ran manual tests on gnodet/camel fork using workflow_dispatch to validate the CI changes in this PR. Three scenarios were tested:

Test 1: Component file change detection ✅

Run: 23613433728All 3 JDKs passed

Changed components/camel-http/HttpComponent.java and verified:

  • ✅ File-path analysis correctly detected components/camel-http
  • ✅ Dependent module count (88) correctly exceeded threshold (50) → tested only affected module
  • ✅ Full regen.sh build + incremental test pipeline completed successfully
  • ✅ CI comment artifact uploaded correctly

Test 2: Parent POM dependency detection ✅ (script worked, tests failed)

Run: 23613434374JDK 21 failed (test failures)

Changed jetty-version property comment in parent/pom.xml and verified:

  • ✅ POM dependency analysis correctly detected jetty-version property change
  • ✅ Found all 8 modules referencing ${jetty-version}: camel-undertow, camel-cometd, camel-platform-http, camel-jetty-common, camel-salesforce-maven-plugin, camel-salesforce, camel-jetty, camel-thymeleaf
  • ✅ Correctly identified parent as pom-only module (no src/test, won't expand dependents)
  • ❌ Actual test failures in detected modules (expected — these are real component tests that can fail independently)

Test 3: skip_full_build + extra_modules (/component-test path) ✅ (script worked, tests failed)

Run: 23615655184JDK 17/25 failed (test failures)

Dispatched with skip_full_build=true and extra_modules=components/camel-direct:

  • ✅ Quick dependency build used instead of regen.sh
  • ✅ Extra modules correctly merged with file-path detected modules
  • ✅ Dependent module count correctly calculated as 24 (< 50 threshold) → tested all dependents
  • ❌ Actual test failures in dependent modules (expected)

Bugs Found and Fixed

  1. Pipefail bug in dependent count (line 448): When ./mvnw returns non-zero, pipefail causes the || echo "0" fallback to append "0" to the wc -l output, producing values like "24\n0" that break the [[ -gt ]] comparison. Fixed by using || true and extracting the last line.

  2. Hardcoded github-repo default: The action.yaml had default: 'apache/camel' instead of default: ${{ github.repository }}. This prevented the script from fetching PR diffs on forks. Fixed to use ${{ github.repository }}.

Both fixes are included in commit b9e4fd7.

Summary

All three code paths in incremental-build.sh are working correctly:

  • File-path detection → identifies changed modules from PR diff
  • POM dependency detection → finds modules affected by parent POM property changes
  • Extra modules merging → correctly adds /component-test modules to the test set
  • skip_full_build → correctly uses quick build instead of regen.sh
  • Dependent module threshold → correctly counts and applies the 50-module limit
  • CI comment artifact → uploaded correctly for the commenter workflow

The test failures (exit code 1) in Tests 2 and 3 are from actual Camel component tests, not from the CI script itself.

The EXCLUSION_LIST uses Maven's !:module exclusion syntax, which only
works when the excluded modules are in the reactor (i.e., with -amd).
When testing POM-dependency-detected modules without -amd, appending
the exclusion list causes "Could not find the selected project in the
reactor: :camel-allcomponents" errors.

Move the exclusion list append into the -amd branch only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants