It would be useful for the Go project to publish periodic binary builds of Go tip, so CI tooling can make testing against a recent development version of Go as easy as:
- uses: actions/setup-go@vN
with:
go-version: tip
The main motivation is to make it easier for Go package maintainers to find compatibility problems before a major Go release ships. Today, projects that want early signal can use golang.org/dl/gotip, which is very flexible: it can build the latest commit, a specific older commit on the main branch, a development branch, or even a CL still in review.
However, gotip works by downloading source and building Go. For many GitHub Actions users, that is enough friction that they do not add tip testing to their CI matrix. Pre-built tip archives would make the common case much easier: “test against a reasonably recent Go development build and report failures as non-fatal signal.”
There is related interest on the actions/setup-go side: actions/setup-go#21. That action can already install released Go versions from binary archives, but supporting go-version: tip well likely needs an upstream source of official or semi-official tip build artifacts and machine-readable metadata.
There was prior discussion of nightly or periodic pre-release builds in #29205. At the time, one blocker was that the Go release process was still too manual. Since then, much of that automation work has landed, which may make periodic tip binary builds more feasible now.
This issue is not necessarily asking for a formal proposal immediately. Since this is mostly in x/build / release infrastructure territory, it may be enough to discuss the shape here first and promote it later only if needed.
A possible target state:
- The Go project publishes binary archives for a selected recent tip commit on a regular cadence, perhaps nightly.
- The builds are available for the same or a useful subset of supported release platforms.
- A machine-readable manifest exposes the latest available tip build, commit hash, build time, archive URLs, and checksums.
- CI integrations such as
actions/setup-go can resolve go-version: tip to the latest published tip build.
- The builds are clearly framed as development snapshots, not supported Go releases, and not covered by the Go security policy.
gotip remains the tool for arbitrary commits, branches, and CLs.
Example CI usage using setup-go:
strategy:
matrix:
go-version: ['1.25.x', 'tip']
continue-on-error: ${{ matrix.go-version == 'tip' }}
steps:
- uses: actions/checkout@vN
- uses: actions/setup-go@vN
with:
go-version: ${{ matrix.go-version }}
- run: go test ./...
@golang/release @dmitshur
It would be useful for the Go project to publish periodic binary builds of Go tip, so CI tooling can make testing against a recent development version of Go as easy as:
The main motivation is to make it easier for Go package maintainers to find compatibility problems before a major Go release ships. Today, projects that want early signal can use
golang.org/dl/gotip, which is very flexible: it can build the latest commit, a specific older commit on the main branch, a development branch, or even a CL still in review.However,
gotipworks by downloading source and building Go. For many GitHub Actions users, that is enough friction that they do not add tip testing to their CI matrix. Pre-built tip archives would make the common case much easier: “test against a reasonably recent Go development build and report failures as non-fatal signal.”There is related interest on the
actions/setup-goside: actions/setup-go#21. That action can already install released Go versions from binary archives, but supportinggo-version: tipwell likely needs an upstream source of official or semi-official tip build artifacts and machine-readable metadata.There was prior discussion of nightly or periodic pre-release builds in #29205. At the time, one blocker was that the Go release process was still too manual. Since then, much of that automation work has landed, which may make periodic tip binary builds more feasible now.
This issue is not necessarily asking for a formal proposal immediately. Since this is mostly in
x/build/ release infrastructure territory, it may be enough to discuss the shape here first and promote it later only if needed.A possible target state:
actions/setup-gocan resolvego-version: tipto the latest published tip build.gotipremains the tool for arbitrary commits, branches, and CLs.Example CI usage using setup-go:
@golang/release @dmitshur