镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Support downloading and extracting .xip archives in Xcode Tool Installation (#337) - #338

Open
reder9 wants to merge 10 commits into
jenkinsci:masterfrom
reder9:feature/xip-tool-installer
Open

reder9 wants to merge 10 commits into
jenkinsci:masterfrom
reder9:feature/xip-tool-installer

Conversation

@reder9

@reder9 reder9 commented Oct 18, 2026

Copy link
Copy Markdown

Summary

Apple distributes official Xcode installer packages as signed .xip archives rather than .zip or .tar.gz. Currently, XcodeInstallation only inherits Jenkins core's default ZipExtractionInstaller ("Extract .zip/.tar.gz"), which cannot extract .xip archives.

This PR introduces XcodeXipInstaller, a dedicated automatic ToolInstaller for XcodeInstallation that enables downloading and expanding .xip archives on macOS agent nodes.

Changes

  • XcodeXipInstaller:
    • Downloads .xip archives from internal distribution mirrors or URLs (attempting direct curl download on the agent when available, falling back to controller-mediated streaming).
    • Expands .xip files on macOS agent nodes using native /usr/bin/xip --expand.
    • Verifies agent compatibility (/usr/bin/xip presence) and rejects non-macOS nodes with a clear AbortException.
    • Automatically detects Xcode.app/Contents/Developer (or accepts a configurable custom subdirectory).
    • Implements caching via a .xip-installed marker file to avoid redundant downloads/expansions.
    • Cleans up the temporary .xip archive after extraction.
  • UI & Configuration:
    • Added config.jelly and help files (help-url.html, help-subdir.html).
    • Registered under @Symbol("xcodeXip") with display name "Extract .xip archive".
    • Added URL form validation in DescriptorImpl.doCheckUrl.
  • XcodeInstallation update:
    • Updated doCheckHome to gracefully allow empty paths when automatic installers are used.
  • Tests:
    • Added XcodeXipInstallerTest covering construction, descriptor validation, tool applicability, and home resolution logic.

Fixes #337
References JENKINS-72791

…lation (jenkinsci#337)

Introduces XcodeXipInstaller which enables automatic downloading and unpacking of Xcode .xip archives on macOS agent nodes via /usr/bin/xip --expand.

Fixes jenkinsci#337, References JENKINS-72791.
@reder9
reder9 requested a review from a team as a code owner October 18, 2026 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support downloading and extracting .xip archives in Xcode Tool Installation

1 participant