Tuist

Tuist

更新日志

Product

The analytics card on the Quarantined Tests page now splits the count into three widgets: total quarantined, Muted, and Skipped. Each widget has its own value, trend, and a chart that switches when you click it, so it is easier to see whether the suite is leaning on muted failures or actively excluding tests from execution. Selecting a widget pins the chart to that mode and persists the selection in the URL for sharing.

Quarantined Tests analytics card with three widgets for total, muted, and skipped counts above the muted-mode chart

Product

The Selective Testing tab on a test run now exposes the same per-target subhashes the Module Cache tab already had. Expand a row to see exactly which inputs went into the hash — sources, dependencies, environment variables, project and target settings, Info.plist, and the rest — making it straightforward to pinpoint the input that drifted when a previously cached test target shows up as a miss. The card also gains a Copy as JSON action that snapshots every selective testing target with its hashes, ready to paste into a ticket or diff against another run.

Selective Testing tab with an expanded test target showing its subhashes alongside the Copy as JSON button

Product

Automations now have a Comparison dropdown alongside When, with Greater or equal, Greater than, Less than, and Less or equal. Pair it with a "Less than" comparison and an Unmark as flaky action to clean up stale flaky labels — including ones set manually or by an automation you've since removed — without touching tests that are still flaking.

The Create automation modal configured to unmark tests as flaky when their flaky run count drops below 1 over the last 30 days

Product

Organizations can now use SCIM 2.0 to let identity providers such as Okta provision, update, and deprovision Tuist members automatically. Generate a SCIM bearer token from the Authentication settings page, configure your IdP with the SCIM endpoint URL, and assign users or groups from your IdP to keep Tuist membership in sync.

SCIM provisioning works alongside SSO: SCIM manages membership lifecycle, while SSO controls sign-in. Deprovisioned members are removed from the organization, preserving their user record and historical work without disabling access to other Tuist organizations.

SCIM provisioning settings with the SCIM endpoint URL, token generation button, and token table

Product

Tuist now integrates with self-hosted GitHub Enterprise Server (GHES) instances. Switch to the Enterprise server tab on your organization's integrations page, enter your GHES base URL, and click install — Tuist routes you through GitHub's App manifest flow, which registers a fresh Tuist GitHub App on your GHES instance and hands the App's credentials back to Tuist. From there, comments, check runs, and repository connections all flow through your private GHES.

GitHub Apps are scoped to a single GitHub instance, so the github.com Tuist App can't be installed on a GHES instance — every customer registers their own copy. The credentials Tuist receives from the manifest exchange are stored encrypted per-installation. No env vars or Tuist server configuration changes are needed.

GitHub Enterprise Server integration tab

Product

Quarantined tests now have two modes: Muted (runs, failures masked, the existing behaviour) and Skipped (excluded from execution; xcodebuild gets -skip-testing and the Gradle plugin filters with excludeTestsMatching). Pick the mode from the test case dropdown, filter by it on the Quarantined Tests page, or have an automation set it for you.

Test case detail page with the state dropdown open on Enabled, Muted, and Skipped

Product

The Test Cases page has a new "Test cases" widget that plots the number of distinct test cases with at least one run in the preceding 14 days. The Flaky Tests page has a matching "Flaky Tests" widget that plots the number of tests currently flagged as flaky over time, alongside the existing "Flaky Runs" metric. Click either widget to swap the chart.

Test Cases analytics with four widgets including a new "Test cases" widget and a chart of test case count over time

Flaky Tests analytics with Flaky Tests and Flaky Runs widgets and a chart of flaky test count over time

Product

Flaky-test handling used to be a fixed set of project toggles: auto-quarantine on or off, one threshold, one cooldown, one Slack channel. That made every team fit the same mould. Automations let you decide what "flaky enough to act on" means for your project, and what should happen when a test crosses that line — quarantine it, keep it green but flag it, ping a specific channel, or any combination — and how it should recover on its own. The engine is built to grow beyond flaky tests, so the same shape will cover more of your test-suite hygiene over time.

The Create automation modal configured to auto-quarantine tests with a flakiness rate of 10% or more over the last 30 days, marking them flaky and recovering after 14 days without a trigger

Product

Test run details now show every device or simulator the run executed on, alongside the existing Mac host info. For multi-destination test plans, each destination is listed with its platform and OS version so you can see at a glance whether tests ran on iPhone, iPad, Apple TV, Apple Watch, or Vision Pro.

Test run details with a Devices row listing iPhone 17 and iPhone 17 Pro on iOS Simulator 26.4

OSS

When HTTPS_PROXY or HTTP_PROXY is set in the environment, Tuist now automatically routes the HTTP connections it manages (cache, previews, analytics, registry access, and the calls the Gradle plugin makes back to Tuist services) through that proxy. Nothing to configure: the CLI and Gradle plugin pick up the variable and use it.