Skip to content

Drop --release from but-sdk build to speed up CI#13699

Merged
mtsgrd merged 2 commits into
masterfrom
buildkite-test-results
May 7, 2026
Merged

Drop --release from but-sdk build to speed up CI#13699
mtsgrd merged 2 commits into
masterfrom
buildkite-test-results

Conversation

@mtsgrd
Copy link
Copy Markdown
Contributor

@mtsgrd mtsgrd commented May 7, 2026

The but-sdk-build-check CI job compiles the SDK in release mode, which takes ~12 minutes. Since this job only verifies the build succeeds and types are up-to-date, debug mode is sufficient. Release artifacts go through napi prepublish separately, so this doesn't affect actual releases.

Comment thread .github/workflows/push.yaml Fixed
Comment thread .github/workflows/push.yaml Fixed
Comment thread .github/workflows/test-e2e.yml Fixed
Comment thread .github/workflows/test-e2e.yml Fixed
Comment thread .github/workflows/push.yaml Fixed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Wires multiple CI test suites in the monorepo (Playwright e2e, WebdriverIO blackbox, Rust workspace tests, and Desktop Vitest) to report results into Buildkite Test Engine for flaky-test detection and historical trend tracking.

Changes:

  • Adds Buildkite Test Engine reporters for Playwright and Vitest and ensures BUILDKITE_ANALYTICS_TOKEN is available to Turbo tasks.
  • Adds JUnit output for WebdriverIO blackbox tests and uploads JUnit XML to Buildkite via curl.
  • Switches Rust CI tests from cargo test to cargo nextest with a CI profile and uploads nextest JUnit output to Buildkite.

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
turbo.json Passes Buildkite analytics token through Turbo for test tasks.
pnpm-lock.yaml Locks new dependencies for Buildkite collector + WDIO JUnit reporter and their transitive deps.
e2e/playwright/playwright.config.ts Adds Buildkite test collector Playwright reporter on CI.
e2e/package.json Adds buildkite-test-collector and WDIO JUnit reporter to the e2e workspace package.
e2e/blackbox/wdio.blackbox.conf.ts Configures WDIO to emit JUnit XML to test-results/results.xml.
apps/desktop/vite.config.ts Enables Buildkite test collector Vitest reporter on CI.
apps/desktop/package.json Adds buildkite-test-collector to desktop devDependencies.
.github/workflows/test-e2e.yml Uploads blackbox JUnit XML to Buildkite; sets Playwright suite token env var.
.github/workflows/push.yaml Runs Rust tests via nextest; uploads nextest JUnit XML; sets Vitest suite token env var.
.config/nextest.toml Introduces a CI nextest profile and configures JUnit output path.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread e2e/package.json
Comment thread .github/workflows/push.yaml Outdated
Comment thread .github/workflows/push.yaml
Comment thread .github/workflows/push.yaml Outdated
Comment thread .github/workflows/test-e2e.yml Outdated
Comment thread pnpm-lock.yaml
Copy link
Copy Markdown
Member

@krlvi krlvi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw @slarse maybe take a look as well in case we missed one of the GH actions foot guns

@slarse
Copy link
Copy Markdown
Contributor

slarse commented May 7, 2026

@krlvi With the exception of the comment about doctests not being executed which I don't know off the top of my head, all of Copilot's comments are valid and should be addressed. Especially using a curl-installer in CI is bad for more reasons than Copilot points out (non-determinism is not one of them, though, odd choice of words).

But I don't have anything worthwhile to add on top of what Copilot already pointed out.

@krlvi
Copy link
Copy Markdown
Member

krlvi commented May 7, 2026

btw i should have added "for tomorrow" in my message 🙈

@mtsgrd mtsgrd force-pushed the buildkite-test-results branch from c2594bb to 03bc689 Compare May 7, 2026 20:17
Copilot AI review requested due to automatic review settings May 7, 2026 20:21
@mtsgrd mtsgrd force-pushed the buildkite-test-results branch from 03bc689 to a2a98e8 Compare May 7, 2026 20:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated 2 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread .github/workflows/test-e2e.yml Outdated
Comment thread .github/workflows/push.yaml Outdated
@mtsgrd mtsgrd force-pushed the buildkite-test-results branch from a2a98e8 to 7ebde87 Compare May 7, 2026 21:01
@github-actions github-actions Bot added the rust Pull requests that update Rust code label May 7, 2026
Copilot AI review requested due to automatic review settings May 7, 2026 21:16
@mtsgrd mtsgrd force-pushed the buildkite-test-results branch from 7ebde87 to 4227b9d Compare May 7, 2026 21:16
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 13 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread .github/workflows/push.yaml
@mtsgrd mtsgrd enabled auto-merge May 7, 2026 21:25
Wire up four test suites to report results to Buildkite Test Engine
for flaky test detection and trend tracking:

- Playwright e2e: native buildkite-test-collector reporter
- Blackbox (WebdriverIO): JUnit XML via @wdio/junit-reporter + curl upload
- Cargo workspace: switch to cargo-nextest with JUnit output + curl upload
- Desktop vitest: native buildkite-test-collector reporter

Each suite uses its own BUILDKITE_SUITE_TOKEN_* GitHub Actions secret.

Allow CI test uploads to continue on failure

Make the CI investigation robust to partial failures by allowing the
upload steps for test results to continue on error. This ensures that
downstream test-reporting invocations don't block the workflow when
previous steps are cancelled or fail. Also fix the e2e test JUnit
reporter path to use an explicit path join so test artifacts are written
to the intended test-results directory.
@mtsgrd
Copy link
Copy Markdown
Contributor Author

mtsgrd commented May 7, 2026

@slarse we wouldn't need the curl installer if we ran all CI on our own image. Is that something you'd be into? *edit: I think we can also just install it the normal way if we whitelist something.

Copilot AI review requested due to automatic review settings May 7, 2026 21:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread .github/workflows/push.yaml
@mtsgrd mtsgrd changed the title Send CI test results to Buildkite Test Engine Drop --release from but-sdk build to speed up CI May 7, 2026
@mtsgrd mtsgrd merged commit 4ef0e3a into master May 7, 2026
40 checks passed
@mtsgrd mtsgrd deleted the buildkite-test-results branch May 7, 2026 22:10
@slarse
Copy link
Copy Markdown
Contributor

slarse commented May 18, 2026

@slarse we wouldn't need the curl installer if we ran all CI on our own image. Is that something you'd be into? *edit: I think we can also just install it the normal way if we whitelist something.

@mtsgrd I seem to have missed this comment. Anyway, this isn't really a "curl installer" in the traditional sense, it's just fetching an archive using curl. Which isn't inherently bad, the badness about what I commented on was that it was a) fetching latest, and b) not validating what was fetched. a) seems to have been fixed but b) is still an issue, we should at the very least have checksum validation here. I'll add a PR for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

@gitbutler/desktop rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants