releaser
A tool for Golang programs that automatically generate versions at build time.
Quick Start
Use in direct
go build -ldflags="-X github.com/zc2638/releaser.ver=0.0.1" main.go
Use in rely
1. Code import
package main
import (
"fmt"
"github.com/zc2638/releaser"
)
func main() {
fmt.Printf("version: %s\n", releaser.Version.String())
fmt.Printf("gitCommit: %s\n", releaser.Version.Git.Commit)
fmt.Printf("goVersion: %s\n", releaser.Version.GoVersion)
fmt.Printf("compiler: %s\n", releaser.Version.Compiler)
fmt.Printf("platform: %s\n", releaser.Version.Platform)
fmt.Printf("buildDate: %s\n", releaser.Version.BuildDate)
}
2. Run Build
go build -ldflags="-X $(releaser get)" main.go
Install
Install from source
go install -v github.com/zc2638/releaser/cmd/releaser@latest
Install from Docker
docker run --rm -it zc2638/releaser:latest
Build from source
1. Clone
git clone https://github.com/zc2638/releaser.git releaser && cd "$_"
2. Build
go build -ldflags="-X $(go run github.com/zc2638/releaser/cmd get)" -o releaser github.com/zc2638/releaser/cmd
Commands
init project
releaser init <project name>
create service
releaser create <service name>
set
use for project
releaser set --version 1.0.0 --meta status=ok --meta repo=github
use for service
releaser set <service name> --version 1.0.0 --meta status=ok --meta repo=github
get
use for project
# get build info, output format `gobuild` is default
releaser get [-o gobuild|json]
# get version
releaser get --filter version
# get metadata field value
releaser get --filter meta.status
use for service
# get build info, output format `gobuild` is default
releaser get <service name> [-o gobuild|json]
# get version
releaser get <service name> --filter version
# get metadata field value
releaser get <service name> --filter meta.status
delete
releaser delete <service name>
walk
releaser walk --command 'echo "$name $version $meta_status"'