Get a run's dashboard URLs as JSON, on any CI provider
Until now, the only way to get a run's dashboard URLs out of a CI job was to read them off the log. On GitHub Actions the job summary covered it, but everywhere else you were left matching the log text with a regex, which quietly breaks whenever the wording or the URL shape changes.
tuist test, tuist xcodebuild test, and tuist xcodebuild build now take a --run-report-path (or TUIST_RUN_REPORT_PATH), and write a JSON report of the run to it:
{
"runId": "...",
"status": "success",
"runURL": "https://tuist.dev/acme/app/runs/123",
"testRunURL": "https://tuist.dev/acme/app/tests/456",
"buildRunURL": "https://tuist.dev/acme/app/builds/789",
"testRuns": [
{ "scheme": "App", "succeeded": true, "totalTests": 10, "skippedTests": 2, "ranTests": 8, "failedTestNames": [] }
],
"buildRuns": [{ "scheme": "App", "succeeded": true, "durationInSeconds": 432 }]
}
Every URL the run produced is included, so a command that both builds and tests gives you both links — something the log could never do, because it only ever printed one of them.
On GitLab, that makes the links available to the rest of the pipeline:
test:
script:
- tuist test --run-report-path tuist-run.json
- echo "TUIST_TEST_RUN_URL=$(jq -r '.testRunURL // empty' tuist-run.json)" >> run.env
artifacts:
reports:
dotenv: run.env
The report is a supported format, documented in the Continuous Integration guide, rather than something you reverse-engineer from the logs.