Skip to content
This repository was archived by the owner on Feb 10, 2026. It is now read-only.

Update Datical fork from jenkinsci fork#3

Open
SteveDonie wants to merge 1296 commits intoDatical:masterfrom
jenkinsci:master
Open

Update Datical fork from jenkinsci fork#3
SteveDonie wants to merge 1296 commits intoDatical:masterfrom
jenkinsci:master

Conversation

@SteveDonie
Copy link
Copy Markdown

No description provided.

dependabot Bot and others added 30 commits June 3, 2024 20:31
Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 4.82 to 4.83.
- [Release notes](https://github.com/jenkinsci/plugin-pom/releases)
- [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md)
- [Commits](jenkinsci/plugin-pom@plugin-4.82...plugin-4.83)

---
updated-dependencies:
- dependency-name: org.jenkins-ci.plugins:plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 1.20.4 to 2.0.0.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](crowdin/github-action@v1.20.4...v2.0.0)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…din/github-action-2.0.0

Bump crowdin/github-action from 1.20.4 to 2.0.0
…i.plugins-plugin-4.83

Bump org.jenkins-ci.plugins:plugin from 4.82 to 4.83
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3105.v672692894683 to 3120.v4d898e1e9fc4.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.440.x
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…ols.bom-bom-2.440.x-3120.v4d898e1e9fc4

Bump io.jenkins.tools.bom:bom-2.440.x from 3105.v672692894683 to 3120.v4d898e1e9fc4
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3135.v6d6c1f6b_3572 to 3143.v347db_7c6db_6e.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.440.x
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…ols.bom-bom-2.440.x-3143.v347db_7c6db_6e

Bump io.jenkins.tools.bom:bom-2.440.x from 3135.v6d6c1f6b_3572 to 3143.v347db_7c6db_6e
Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 4.83 to 4.84.
- [Release notes](https://github.com/jenkinsci/plugin-pom/releases)
- [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md)
- [Commits](jenkinsci/plugin-pom@plugin-4.83...plugin-4.84)

---
updated-dependencies:
- dependency-name: org.jenkins-ci.plugins:plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…i.plugins-plugin-4.84

Bump org.jenkins-ci.plugins:plugin from 4.83 to 4.84
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3157.vb_3e8b_8a_d185d to 3180.vc1df4d5b_8097.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.440.x
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.0.0 to 2.1.1.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](crowdin/github-action@v2.0.0...v2.1.1)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3208.vb_21177d4b_cd9 to 3221.ve8f7b_fdd149d.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.440.x
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…ols.bom-bom-2.440.x-3221.ve8f7b_fdd149d

Bump io.jenkins.tools.bom:bom-2.440.x from 3208.vb_21177d4b_cd9 to 3221.ve8f7b_fdd149d
…din/github-action-2.1.1

Bump crowdin/github-action from 2.0.0 to 2.1.1
Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 4.85 to 4.86.
- [Release notes](https://github.com/jenkinsci/plugin-pom/releases)
- [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md)
- [Commits](jenkinsci/plugin-pom@plugin-4.85...plugin-4.86)

---
updated-dependencies:
- dependency-name: org.jenkins-ci.plugins:plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bruno Verachten <gounthar@gmail.com>
Bumps [io.jenkins.tools.bom:bom-2.440.x](https://github.com/jenkinsci/bom) from 3258.vcdcf15936a_fd to 3276.vcd71db_867fb_2.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.440.x
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
…ols.bom-bom-2.440.x-3276.vcd71db_867fb_2

Bump io.jenkins.tools.bom:bom-2.440.x from 3258.vcdcf15936a_fd to 3276.vcd71db_867fb_2
Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 4.86 to 4.87.
- [Release notes](https://github.com/jenkinsci/plugin-pom/releases)
- [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md)
- [Commits](jenkinsci/plugin-pom@plugin-4.86...plugin-4.87)

---
updated-dependencies:
- dependency-name: org.jenkins-ci.plugins:plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
dependabot Bot and others added 30 commits April 3, 2026 21:24
Bumps [actions/labeler](https://github.com/actions/labeler) from 5 to 6.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](actions/labeler@v5...v6)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#989)

- Store unmodifiable lists in cache to prevent modification of cached data
- Create mutable copy before retainAll() in tryQueue()
- Take snapshot of cache keys before invalidating in uncacheIfFreeing()
- Tolerate timing variation in LockStepReserveInsideLockHonouredTest

The cache stores unmodifiable lists for thread-safety since multiple
threads may read from the cache concurrently. Selective invalidation
preserves cache for unaffected queue items (important at scale with
1000+ items).

Fixes potential CI timeouts caused by thread deadlocks.
* chore: Use reusable rebase-open-prs-action

Replace inline script with mPokornyETM/rebase-open-prs-action@v1
This makes it easier to reuse across multiple repositories.

* chore: Use reusable rebase-open-prs workflow
Bumps [io.jenkins.tools.bom:bom-2.528.x](https://github.com/jenkinsci/bom) from 6210.v69ea_fd8a_f010 to 6237.v4da_61a_4a_19e5.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.528.x
  dependency-version: 6237.v4da_61a_4a_19e5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Reusable workflows from external repos may be blocked by org policies.
Using the composite action directly works across orgs.
The composite action needs GH_TOKEN set as env var.
Use github.token which has the required permissions.
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](actions/github-script@v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: Add option to disable automatic ephemeral resource creation (fixes #651)

* chore: Apply code formatting
When using github.token, force-pushes don't trigger other workflows
like Jenkins Security Scan. Using a PAT (GH_TOKEN secret) fixes this.

Falls back to github.token if secret is not configured.

To complete this fix, a repository admin needs to:
1. Create a PAT with 'repo' and 'workflow' scopes
2. Add it as repository secret named GH_TOKEN
- Update LICENSE.txt with current maintainer (Martin Pokorny 2022-2026)
- Replace verbose box-style headers with short MIT reference
- Replace full MIT license headers with short reference
- All files now point to LICENSE.txt for full copyright info

Fixes #981
Bumps [io.jenkins.tools.bom:bom-2.528.x](https://github.com/jenkinsci/bom) from 6237.v4da_61a_4a_19e5 to 6269.v7a_159d68a_366.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.528.x
  dependency-version: 6269.v7a_159d68a_366
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
When a new resource is added via createResourceWithLabel() or
addResource(), waiting jobs now automatically pick it up instead
of remaining blocked.

Changes:
- Invalidate cachedCandidates and process waiting pipeline contexts
  when adding new resources (inside synchronized block for atomicity)
- Call scheduleQueueMaintenance() to notify freestyle jobs
- Add refreshQueue() public method for users who modify labels on
  existing resources (label changes don't auto-trigger re-evaluation)
- Add documentation explaining dynamic resource behavior and limitations

Fixes #892
See also: JENKINS-46744
Document how to lock resources for individual pipeline stages
using the options block, allowing long-running builds to only
hold resources during the stages that need them.

Fixes #8
* Add updateLock pipeline step for resource management

This step allows pipelines to dynamically manage lockable resources:
- Create new resources (createResource: true)
- Delete existing resources (deleteResource: true)
- Modify labels (setLabels, addLabels, removeLabels)
- Set notes (setNote)

Based on the original design from PR #305 by @gaspardpetit.

Fixes #305

* Remove @SInCE TODO - not applicable for plugins

* Add updateLock step documentation to README

* Add 'reason' parameter to lock() step

Allows users to specify a reason when locking a resource, displayed in
the lockable resources UI while the resource is locked.

Usage:
  lock(resource: 'my-resource', reason: 'Running integration tests') {
      // ...
  }

Features:
- New 'reason' parameter on lock() step
- Reason displayed in UI status column while locked
- Reason cleared automatically when resource is unlocked
- Works with label-based and resource-based locking
- Reason preserved when lock request is queued
- Environment variable 'resourceLockReason' available in groovy scripts

Fixes #520

* feat: Add reason parameter to reserve button

When a user reserves a resource via the Reserve button, they are now
prompted to provide a reason. The reason is:
- Stored in the lockReason field (shared with lock() step)
- Displayed in the resources table
- Cleared when the resource is unreserved

Changes:
- LockableResource: Add reserve(userName, reason) overload
- LockableResourcesManager: Add reserve(resources, userName, reason)
- doReserve: Read reason parameter from request
- table.jelly: Show reason for reserved resources, add i18n template
- lockable-resources.js: Prompt for reason on reserve action
- table.properties: Add dialog messages

* fix: consolidate i18n templates to avoid duplicate IDs

* feat: Enhance reservation logging and add authentication check

* refactor: improve logging format for resource reservation and user authentication (#1009)

* fix: include reason in toString(), steal action, and fix spotless formatting
Co-authored-by: Oskar Kirmis <okirmis@triplebit-solutions.de>
Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](actions/github-script@v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Dependabot-triggered pull_request events only expose a read-only
GITHUB_TOKEN and cannot access custom secrets (secrets.GH_TOKEN was
empty). Switch to pull_request_target so the workflow runs in the
base-branch context where github.token has write permissions.
…ccf1 to 6.2152.ve00a_731c3ce9 (#1006)

* chore(deps): bump org.jenkins-ci.plugins:plugin

Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 5.2102.v5f5fe09fccf1 to 6.2152.ve00a_731c3ce9.
- [Release notes](https://github.com/jenkinsci/plugin-pom/releases)
- [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jenkinsci/plugin-pom/commits)

---
updated-dependencies:
- dependency-name: org.jenkins-ci.plugins:plugin
  dependency-version: 6.2152.ve00a_731c3ce9
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix duplicate properties keys and spotless formatting

Remove duplicate resource.status.* keys in tableQueue/table.properties
that cause InjectedTest.testProperties failure with plugin-pom 6.x.

Apply spotless formatting fix to LockStepExecution.java.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Martin Pokorny <martin.pokorny@etm.at>
…1010)

Adds timeoutForAllocateResource and timeoutUnit parameters to the lock()
pipeline step and lockTimeout/lockTimeoutUnit to freestyle job resource
configuration. When a timeout is set and the resource is not acquired
within the specified duration, the pipeline build fails with a
LockWaitTimeoutException and the freestyle queue item is cancelled.

Implementation uses a single scheduled task targeting the earliest
deadline across all queued entries, with a periodic safety-net fallback.

Fixes #866
Fixes #849
Fixes #30
Bumps [io.jenkins.tools.bom:bom-2.528.x](https://github.com/jenkinsci/bom) from 6269.v7a_159d68a_366 to 6329.v403d8c87a_5ce.
- [Release notes](https://github.com/jenkinsci/bom/releases)
- [Commits](https://github.com/jenkinsci/bom/commits)

---
updated-dependencies:
- dependency-name: io.jenkins.tools.bom:bom-2.528.x
  dependency-version: 6329.v403d8c87a_5ce
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…les (#1017)

When a DataTable has 0 entries (e.g. empty queue, build with no resources),
the data-tables-api plugin's default emptyTable language string shows
'Loading - please wait ...' indefinitely. Override it with a proper message
for the queue table and the build action table.

Fixes #706
…h semaphores (#1011)

Fixes #988

LockableResourcesManager.reset() cleared resource state but never called
proceedNextContext(), so waiting pipeline jobs were never notified when
resources became free via reset(). Every other method that frees resources
(unlockResources, unreserve, addResource) already does this. Added the
same while(proceedNextContext()){} loop inside reset().

Replaced all sleep() calls in the reserve/setReservedBy-inside-lock tests
with SemaphoreStep-based synchronisation, making the tests deterministic
and roughly 4x faster (~20s vs ~80s each). Removed the try-catch Bug#2a
and Bug#2b tolerance blocks since the reset() fix makes them unnecessary.

Affected tests:
- LockStepReserveInsideLockHonouredTest
- LockStepSetReservedByInsideLockHonouredTest
- LockStepTest#reserveInsideLockHonoured
- LockStepTest#setReservedByInsideLockHonoured
* Add tests proving lock queue cleanup on timeout and hard-kill

Adds LockStepTimeoutQueueTest with 5 tests that verify the lock queue
is properly cleaned up when builds are timed out, aborted, or
hard-killed while waiting for a lockable resource:

- timeoutWhileWaitingForLockClearsQueue: timeout step wrapping lock
- abortWhileWaitingForLockByLabelClearsQueue: executor.interrupt()
- timeoutMiddleBuildInQueuePreservesOrder: FIFO order preserved
- hardKillWhileWaitingForLockClearsQueueViaIsValid: doKill() with
  multiple waiters — isValid() fallback removes stale queue entry
- hardKillOnlyWaiterDoesNotBlockFutureBuilds: doKill() sole waiter

All tests pass, confirming the lockable-resources plugin correctly
handles both the clean stop() path and the isValid() fallback path.

Fixes #773

* Add tests proving lock queue cleanup on timeout and hard-kill

Adds LockStepTimeoutQueueTest with 5 tests that verify the lock queue
is properly cleaned up when builds are timed out, aborted, or
hard-killed while waiting for a lockable resource:

- timeoutWhileWaitingForLockClearsQueue: timeout step wrapping lock
- abortWhileWaitingForLockByLabelClearsQueue: executor.interrupt()
- timeoutMiddleBuildInQueuePreservesOrder: FIFO order preserved
- hardKillWhileWaitingForLockClearsQueueViaIsValid: doKill() with
  multiple waiters — isValid() fallback removes stale queue entry
- hardKillOnlyWaiterDoesNotBlockFutureBuilds: doKill() sole waiter

All tests pass, confirming the lockable-resources plugin correctly
handles both the clean stop() path and the isValid() fallback path.

Fixes #773

* refactor: Simplify lock definition syntax in LockStepTimeoutQueueTest

* Apply spotless formatting to LockStepTimeoutQueueTest
* test: Add inversePrecedence regression tests for #861 and #864

Add two new tests to LockStepTest:

- lockInverseOrderWithLabel: verifies inversePrecedence=true grants the
  lock to the newest build when locking by label (JENKINS-40787, #861)

- lockInverseOrderMixedDifferentJobs: verifies each waiting job's own
  inversePrecedence flag controls queue ordering when using separate
  pipeline jobs with mixed settings (JENKINS-41070, #864)

* refactor: Move inversePrecedence tests to separate test class

Extract lockInverseOrderWithLabel and lockInverseOrderMixedDifferentJobs
into LockStepInversePrecedenceTest to keep LockStepTest smaller and
avoid CI timeouts.

* Disable lockInverseOrderWithLabel test (blocked by #861)
…sourcesFromProject (#1020)

Add synchronized(syncResources) blocks around iterations in
getDeclaredResources() and getResourcesFromProject() to prevent
ConcurrentModificationException when the resources list is modified
concurrently by another thread.

Also changes both methods to iterate over this.resources directly
(inside the sync block) instead of this.getResources() which returns
an unprotected reference.

Fixes #933
… on Jenkins 2.532+ (#1027)

Jenkins 2.532 (core PR #11173) changed Queue.maintain() to create a new
BlockedItem instead of updating the existing one when canRun() returns a
CauseOfBlockage. This caused the manual Queue.cancel() in
checkFreestyleTimeout() to be immediately undone.

Override isFatal() returning true on BecauseResourcesTimeout so the queue
itself handles the cancellation. Also bump Jenkins baseline to 2.541 (the
next LTS line that includes the isFatal() API) and update BOM accordingly.

Fixes #1026
Bumps [crowdin/github-action](https://github.com/crowdin/github-action) from 2.16.0 to 2.16.2.
- [Release notes](https://github.com/crowdin/github-action/releases)
- [Commits](crowdin/github-action@v2.16.0...v2.16.2)

---
updated-dependencies:
- dependency-name: crowdin/github-action
  dependency-version: 2.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [org.jenkins-ci.plugins:plugin](https://github.com/jenkinsci/plugin-pom) from 6.2152.ve00a_731c3ce9 to 6.2153.vcf31911d10c4.
- [Release notes](https://github.com/jenkinsci/plugin-pom/releases)
- [Changelog](https://github.com/jenkinsci/plugin-pom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jenkinsci/plugin-pom/commits/6.2153.vcf31911d10c4)

---
updated-dependencies:
- dependency-name: org.jenkins-ci.plugins:plugin
  dependency-version: 6.2153.vcf31911d10c4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.