Repository navigation
Conversation
- macOS runs the tests without the race detector. On its arm64 runners internal/engine took 471 s under -race (110 s on Linux): SQLite, which modernc translates from C, and Argon2, whose assembly is amd64 only, make every memory access an instrumented one. Linux and Windows keep -race; the macOS job was the critical path at 12 minutes. - The Wails CLI version is read from go.mod by a local action instead of four pins written by hand, so Dependabot's wails/v2 bump moves the CLI too. CI caches the compiled CLI (40 to 55 s a job). - The release workflow restores no cache at all (Go modules and build cache, npm, Wails CLI): caches are written by CI runs, and what one left would end up in a signed release. - Every job has a timeout-minutes instead of GitHub's six hours. - CodeQL installs GTK/WebKit through the linux-deps action, with its mirror fallback and time limit, like CI and the release already do. - The release job runs on ubuntu-24.04 like every other job. - actionlint checks every workflow in the quality job, shellcheck included: the release workflow only runs once a tag is pushed.
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CI took 12½ minutes, almost all of it waiting on the macOS job, and a few things in the workflows were held together by hand. This makes CI faster and the release workflow sturdier, without changing what either checks.
Faster
macOS runs the tests without
-race. Measured on the last CI run:go test -raceinternal/enginealoneThe race detector instruments every memory access, and two things here make a great many: SQLite, which modernc translates from C into Go, and Argon2, whose x/crypto assembly is amd64 only. On the 3-core arm64 macOS runners that is four times Linux. Linux and Windows keep
-race; the code it watches is shared, and macOS still runs every test.The Wails CLI is cached in CI. Compiling it took 40 to 55 s in each build job.
Sturdier
.github/actions/wails-cli), not from four pins in the workflows. Dependabot's wails/v2 bump now moves the CLI too; build(deps): bump github.com/wailsapp/wails/v2 from 2.17.0 to 2.17.1 #117 needed a hand-written commit for it, as build(deps): bump github.com/wailsapp/wails/v2 from 2.16.0 to 2.17.0 #88 did.timeout-minutes. The default is six hours; a test hung on a pipe or a lock would hold a macOS runner that long.linux-deps, the action with the mirror fallback that CI and the release already use; it was the last plainapt-getwithout a time limit.ubuntu-24.04like every other job, notubuntu-latest.Checked
go testfrom 535 s to 25 s,internal/enginefrom 471 s to 19 s; the 22 packages all ran), and Linux, at 4.4 min, is the longest job.wails-cli-{Windows-X64,Linux-X64,macOS-ARM64}-v2.17.1-go1.26.10): 1 to 3 s instead of 29 to 54 s.The release path (no caches, the CLI through the action) first runs at the next tag; actionlint checks it statically until then, and the release skill still verifies the published assets afterwards.