Skip to content

ci: attach binaries to releases, and document the display requirement - #12

Merged
Serizao merged 1 commit into
masterfrom
chore/release-artifacts
Jul 30, 2026
Merged

Serizao merged 1 commit into
masterfrom
chore/release-artifacts

Conversation

@Serizao

@Serizao Serizao commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

release-0.2 shipped with no assets while every release up to 0.1.0 carried a Linux and a Windows binary, and the README's first suggestion is to download one. The step was manual, so it was forgotten. A workflow on release-* tags now builds and uploads them, plus a darwin/arm64 build. Asset names match the pre-0.2 ones so existing links and scripts keep working.

It runs go vet and go test -race before uploading, so a tag that does not pass never produces binaries, and it creates the GitHub release only when one does not already exist — a hand-written body is never overwritten. workflow_dispatch takes an existing tag, which is how 0.2 can be backfilled without moving it.

The README needed two corrections. The release badge was pinned to v0.0.8 and pointed at the Hunt3r repository rather than this one; it now reads the latest release from this repo, so it cannot go stale again. And installation only mentioned needing Chrome. Since 0.2 it also needs a display, which is the change most likely to break an existing deployment: a new Requirements section covers Chrome, the display with the xvfb-run invocation, -headless as the alternative, and the outbound access the fingerprint download needs.

.gitattributes pins LF in the working tree. Git already stores LF, but with core.autocrlf=true a Windows checkout produces CRLF and gofmt then reports all 34 Go files as unformatted despite being byte-identical to its own output. That made the gofmt -l gate added to go.yml pass on the Linux runner and fail on a Windows contributor's machine for no real reason.

Verified: cross-compilation succeeds for linux/amd64, windows/amd64 and darwin/arm64; both workflow files parse; gofmt -l . clean, go vet ./... clean, go test -race ./... green.

release-0.2 shipped with no assets while every release up to 0.1.0 carried a
Linux and a Windows binary, and the README's first suggestion is to download one.
The step was manual, so it was forgotten. A workflow on release-* tags now builds
and uploads them, plus a darwin/arm64 build. Asset names match the pre-0.2 ones so
existing links and scripts keep working.

It runs go vet and go test -race before uploading, so a tag that does not pass
never produces binaries, and it creates the GitHub release only when one does not
already exist — a hand-written body is never overwritten. workflow_dispatch takes
an existing tag, which is how 0.2 can be backfilled without moving it.

The README needed two corrections. The release badge was pinned to v0.0.8 and
pointed at the Hunt3r repository rather than this one; it now reads the latest
release from this repo, so it cannot go stale again. And installation only
mentioned needing Chrome. Since 0.2 it also needs a display, which is the change
most likely to break an existing deployment: a new Requirements section covers
Chrome, the display with the xvfb-run invocation, -headless as the alternative,
and the outbound access the fingerprint download needs.

.gitattributes pins LF in the working tree. Git already stores LF, but with
core.autocrlf=true a Windows checkout produces CRLF and gofmt then reports all 34
Go files as unformatted despite being byte-identical to its own output. That made
the `gofmt -l` gate added to go.yml pass on the Linux runner and fail on a Windows
contributor's machine for no real reason.

Verified: cross-compilation succeeds for linux/amd64, windows/amd64 and
darwin/arm64; both workflow files parse; gofmt -l . clean, go vet ./... clean,
go test -race ./... green.
@Serizao
Serizao merged commit 65840b4 into master Jul 30, 2026
2 checks passed
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.

1 participant