This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# Development and release verification
|
||||
|
||||
## Requirements
|
||||
|
||||
- Go 1.24 or newer
|
||||
- Linux
|
||||
- GNU `sha256sum`, `stat`, and `find`
|
||||
- `file`
|
||||
|
||||
## Local verification
|
||||
|
||||
```sh
|
||||
gofmt -w .
|
||||
go test ./...
|
||||
go vet ./...
|
||||
./scripts/check-docs.sh
|
||||
./scripts/test-hermetic.sh
|
||||
./scripts/test-release.sh
|
||||
./scripts/verify-clean-machine.sh
|
||||
```
|
||||
|
||||
`test-hermetic.sh` runs the complete uncached Go suite as an unprivileged user and verifies that readable host configuration content and metadata remain unchanged.
|
||||
|
||||
`verify-clean-machine.sh` uses isolated identity and XDG roots to exercise installation, Profile workflows, hermetic Target workflows, diagnostics, reset confirmation, Shell integration, and removal.
|
||||
|
||||
## Release build
|
||||
|
||||
```sh
|
||||
VERSION=v1.0.0 ./scripts/build-release.sh
|
||||
sha256sum -c dist/SHA256SUMS
|
||||
file dist/proxyctl-linux-amd64 dist/proxyctl-linux-arm64
|
||||
```
|
||||
|
||||
The release consists of Linux amd64 and arm64 single binaries plus `SHA256SUMS`; it does not produce distribution packages or archives.
|
||||
|
||||
`test-release.sh` builds twice, compares binaries and checksum manifests, validates both architectures and checksums, and verifies that process-test seams cannot enter a release artifact.
|
||||
Reference in New Issue
Block a user