Skip to content

A tool for Golang programs that automatically generate versions at build time.

License

Notifications You must be signed in to change notification settings

zc2638/releaser

Repository files navigation

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"'

About

A tool for Golang programs that automatically generate versions at build time.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published