Use .Version instead of .Tag for Docker image templates, add major and
major.minor manifest tags, skip pushing latest/semver tags for prereleases,
and pin GoReleaser to v2.12.7 for reproducible builds.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace separate docker/build-push-action job with GoReleaser dockers
- Merge release_binaries and release_docker into single release job
- Publish multi-arch images to both GHCR and Docker Hub
- Simplify Dockerfile to use pre-built binary from GoReleaser
- Scope permissions properly (contents:write, packages:write)
- Architectures: amd64, arm64, armv7, armv6, 386, ppc64le
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove obsolete Windows ARM32 build exclusions from goreleaser
- Add GOTOOLCHAIN=auto to CI for Go version compatibility
- Windows ARM32 builds work fine with modern Go versions
💖 Generated with Crush
Co-Authored-By: Crush <crush@charm.land>
binaries are already released with latest goreleaser, docker image uses alpine:go, both are latest stable go, so makes sense to always test with latest stable too
* split out share/ package into multiple subpackages
* added share/compat.go to keep backward compatibility(ish)
* moved shared tunnelling logic from client/server packages into share/tunnel/
* added remote protocol "<host>:<port>/<protocol>", currently supporting tcp and udp
* added an end-to-end test suite
* added TODO e2e tests as contribution targets
* added deep context integration for improved cleanup and cancellation
- @aus's branch also includes PR for
custom headers, thanks @AkeemMcLennon (closes#90)
- support client connections via socks
- add more architectures to the built releases
- remove vendor (go.sum will enforce correct deps)