build

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2019 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Overview

Package build contains the utility functions for build environment.

Index

Constants

This section is empty.

Variables

View Source
var (
	// These flags override values in build env.
	GitCommitFlag   = flag.String("git-commit", "", `Overrides git commit hash embedded into executables`)
	GitBranchFlag   = flag.String("git-branch", "", `Overrides git branch being built`)
	GitTagFlag      = flag.String("git-tag", "", `Overrides git tag being built`)
	BuildnumFlag    = flag.String("buildnum", "", `Overrides CI build number`)
	PullRequestFlag = flag.Bool("pull-request", false, `Overrides pull request status of the build`)
	CronJobFlag     = flag.Bool("cron-job", false, `Overrides cron job status of the build`)
)
View Source
var DryRunFlag = flag.Bool("n", false, "dry run, don't execute commands")

Functions

func AddFile

func AddFile(a Archive, file string) error

AddFile appends an existing file to an archive.

func CopyFile

func CopyFile(dst, src string, mode os.FileMode)

CopyFile copies a file.

func ExcludePackages

func ExcludePackages(packages []string, patterns []string) []string

ExcludePackages excludes packages having patterns from the passed package slice and returns a slice including only the remained packages.

func ExpandPackagesNoVendor

func ExpandPackagesNoVendor(patterns []string) []string

ExpandPackagesNoVendor expands a cmd/go import path pattern, skipping vendored packages.

func GOPATH

func GOPATH() string

GOPATH returns the value that the GOPATH environment variable should be set to.

func GoTool

func GoTool(tool string, args ...string) *exec.Cmd

GoTool returns the command that runs a go tool. This uses go from GOROOT instead of PATH so that go commands executed by build use the same version of Go as the 'host' that runs build code. e.g.

/usr/lib/go-1.8/bin/go run build/ci.go ...

runs using go 1.8 and invokes go 1.8 tools from the same GOROOT. This is also important because runtime.Version checks on the host should match the tools that are run.

func MustRun

func MustRun(cmd *exec.Cmd)

MustRun executes the given command and exits the host process for any error.

func MustRunCommand

func MustRunCommand(cmd string, args ...string)

func PGPKeyID

func PGPKeyID(pgpkey string) (string, error)

PGPKeyID parses an armored key and returns the key ID.

func PGPSignFile

func PGPSignFile(input string, output string, pgpkey string) error

PGPSignFile parses a PGP private key from the specified string and creates a signature file into the output parameter of the input file.

Note, this method assumes a single key will be container in the pgpkey arg, furthermore that it is in armored format.

func Render

func Render(templateFile, outputFile string, outputPerm os.FileMode, x interface{})

Render renders the given template file into outputFile.

func RenderString

func RenderString(templateContent, outputFile string, outputPerm os.FileMode, x interface{})

RenderString renders the given template string into outputFile.

func RunGit

func RunGit(args ...string) string

RunGit runs a git subcommand and returns its output. The command must complete successfully.

func TryRun

func TryRun(cmd *exec.Cmd) error

TryRun executes the given command and returns an error if error occurs.

func TryRunCommand

func TryRunCommand(cmd string, args ...string)

TryRunCommand executes the given command and arguments in strings.

func VERSION

func VERSION() string

VERSION returns the content of the VERSION file.

func WriteArchive

func WriteArchive(name string, files []string) (err error)

WriteArchive creates an archive containing the given files.

Types

type Archive

type Archive interface {
	// Directory adds a new directory entry to the archive and sets the
	// directory for subsequent calls to Header.
	Directory(name string) error

	// Header adds a new file to the archive. The file is added to the directory
	// set by Directory. The content of the file must be written to the returned
	// writer.
	Header(os.FileInfo) (io.Writer, error)

	// Close flushes the archive and closes the underlying file.
	Close() error
}

func NewArchive

func NewArchive(file *os.File) (Archive, string)

func NewTarballArchive

func NewTarballArchive(w io.WriteCloser) Archive

func NewZipArchive

func NewZipArchive(w io.WriteCloser) Archive

type Environment

type Environment struct {
	Name                    string // name of the environment
	Repo                    string // name of GitHub repo
	Commit, Branch, Tag     string // Git info
	Buildnum                string
	IsPullRequest           bool
	IsCronJob               bool
	IsKlaytnRaceDetectionOn bool
}

Environment contains metadata provided by the build environment.

func Env

func Env() Environment

Env returns metadata about the current CI environment, falling back to LocalEnv if not running on CI.

func LocalEnv

func LocalEnv() Environment

LocalEnv returns build environment metadata gathered from git.

func (Environment) String

func (env Environment) String() string

type TarballArchive

type TarballArchive struct {
	// contains filtered or unexported fields
}

func (*TarballArchive) Close

func (a *TarballArchive) Close() error

func (*TarballArchive) Directory

func (a *TarballArchive) Directory(name string) error

func (*TarballArchive) Header

func (a *TarballArchive) Header(fi os.FileInfo) (io.Writer, error)

type ZipArchive

type ZipArchive struct {
	// contains filtered or unexported fields
}

func (*ZipArchive) Close

func (a *ZipArchive) Close() error

func (*ZipArchive) Directory

func (a *ZipArchive) Directory(name string) error

func (*ZipArchive) Header

func (a *ZipArchive) Header(fi os.FileInfo) (io.Writer, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL