Skip to content

CAMEL-23267: Use a LinkedHashMap as inProgressRepository for file com… #16268

CAMEL-23267: Use a LinkedHashMap as inProgressRepository for file com…

CAMEL-23267: Use a LinkedHashMap as inProgressRepository for file com… #16268

Workflow file for this run

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: Build and test
on:
pull_request:
branches:
- main
paths-ignore:
- .github/**
- README.md
- SECURITY.md
- Jenkinsfile
- Jenkinsfile.*
- NOTICE.txt
workflow_dispatch:
inputs:
pr_number:
description: 'Pull request number to build'
required: true
type: string
pr_ref:
description: 'Git ref of the pull request branch'
required: true
type: string
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || inputs.pr_number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
if: github.repository == 'apache/camel'
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.experimental }}
strategy:
matrix:
java: ['17', '21']
experimental: [ false ]
include:
- java: '25'
experimental: true
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
ref: ${{ inputs.pr_ref || '' }}
- id: install-packages
uses: ./.github/actions/install-packages
- id: install-mvnd
uses: ./.github/actions/install-mvnd
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: maven build
run: ./etc/scripts/regen.sh
- name: archive logs
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
if: always()
with:
name: build-${{ matrix.java }}.log
path: build.log
- name: Fail if there are uncommitted changes
shell: bash
run: |
[[ -z $(git status --porcelain) ]] || { echo 'There are uncommitted changes'; git status; echo; echo; git diff; exit 1; }
- name: mvn test
uses: ./.github/actions/incremental-build
with:
mode: test
pr-id: ${{ github.event.number || inputs.pr_number }}
github-token: ${{ secrets.GITHUB_TOKEN }}
skip-mvnd-install: 'true'
artifact-upload-suffix: java-${{ matrix.java }}
- name: Post CI test summary comment
if: always() && !matrix.experimental
uses: actions/github-script@v8
with:
script: |
const fs = require('fs');
const commentFile = 'incremental-test-comment.md';
if (!fs.existsSync(commentFile)) return;
const body = fs.readFileSync(commentFile, 'utf8').trim();
if (!body) return;
const prNumber = ${{ github.event.number || inputs.pr_number || 0 }};
if (!prNumber) {
core.warning('Could not determine PR number, skipping test summary comment');
return;
}
const marker = '<!-- ci-tested-modules -->';
try {
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
});
const existing = comments.find(c => c.body && c.body.includes(marker));
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body: body,
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: body,
});
}
} catch (error) {
core.warning(`Failed to post CI test summary comment: ${error.message}`);
}
- name: mvn test parent pom dependencies changed
uses: ./.github/actions/detect-dependencies
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
base-ref: ${{ github.base_ref || 'main' }}