Documentation ¶
Index ¶
- Variables
- func AddFile(a Archive, file string) error
- func AzureBlobstoreDelete(config AzureBlobstoreConfig, blobs []azblob.BlobItem) error
- func AzureBlobstoreList(config AzureBlobstoreConfig) ([]azblob.BlobItem, error)
- func AzureBlobstoreUpload(path string, name string, config AzureBlobstoreConfig) error
- func DownloadGo(csdb *ChecksumDB, version string) string
- func ExtractArchive(archive string, dest string) error
- func FindMainPackages(dir string) []string
- func MustRun(cmd *exec.Cmd)
- func MustRunCommand(cmd string, args ...string)
- func PGPKeyID(pgpkey string) (string, error)
- func PGPSignFile(input string, output string, pgpkey string) error
- func Render(templateFile, outputFile string, outputPerm os.FileMode, x interface{})
- func RenderString(templateContent, outputFile string, outputPerm os.FileMode, x interface{})
- func RunGit(args ...string) string
- func UploadSFTP(identityFile, host, dir string, files []string) error
- func WriteArchive(name string, files []string) (err error)
- type Archive
- type AzureBlobstoreConfig
- type ChecksumDB
- type Environment
- type GoToolchain
- type TarballArchive
- type ZipArchive
Constants ¶
This section is empty.
Variables ¶
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`) )
var DryRunFlag = flag.Bool("n", false, "dry run, don't execute commands")
Functions ¶
func AzureBlobstoreDelete ¶
func AzureBlobstoreDelete(config AzureBlobstoreConfig, blobs []azblob.BlobItem) error
AzureBlobstoreDelete iterates over a list of files to delete and removes them from the blobstore.
func AzureBlobstoreList ¶
func AzureBlobstoreList(config AzureBlobstoreConfig) ([]azblob.BlobItem, error)
AzureBlobstoreList lists all the files contained within an azure blobstore.
func AzureBlobstoreUpload ¶
func AzureBlobstoreUpload(path string, name string, config AzureBlobstoreConfig) error
AzureBlobstoreUpload uploads a local file to the Azure Blob Storage. Note, this method assumes a max file size of 64MB (Azure limitation). Larger files will need a multi API call approach implemented.
See: https://msdn.microsoft.com/en-us/library/azure/dd179451.aspx#Anchor_3
func DownloadGo ¶
func DownloadGo(csdb *ChecksumDB, version string) string
DownloadGo downloads the Go binary distribution and unpacks it into a temporary directory. It returns the GOROOT of the unpacked toolchain.
func ExtractArchive ¶
ExtractArchive unpacks a .zip or .tar.gz archive to the destination directory.
func FindMainPackages ¶
FindMainPackages finds all 'main' packages in the given directory and returns their package paths.
func MustRunCommand ¶
func PGPSignFile ¶
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 RenderString ¶
RenderString renders the given template string into outputFile.
func RunGit ¶
RunGit runs a git subcommand and returns its output. The command must complete successfully.
func UploadSFTP ¶
UploadSFTP uploads files to a remote host using the sftp command line tool. The destination host may be specified either as [user@]host[: or as a URI in the form sftp://[user@]host[:port].
func WriteArchive ¶
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 NewTarballArchive ¶
func NewTarballArchive(w io.WriteCloser) Archive
func NewZipArchive ¶
func NewZipArchive(w io.WriteCloser) Archive
type AzureBlobstoreConfig ¶
type AzureBlobstoreConfig struct { Account string // Account name to authorize API requests with Token string // Access token for the above account Container string // Blob container to upload files into }
AzureBlobstoreConfig is an authentication and configuration struct containing the data needed by the Azure SDK to interact with a specific container in the blobstore.
type ChecksumDB ¶
type ChecksumDB struct {
// contains filtered or unexported fields
}
ChecksumDB keeps file checksums.
func MustLoadChecksums ¶
func MustLoadChecksums(file string) *ChecksumDB
MustLoadChecksums loads a file containing checksums.
func (*ChecksumDB) DownloadFile ¶
func (db *ChecksumDB) DownloadFile(url, dstPath string) error
DownloadFile downloads a file and verifies its checksum.
func (*ChecksumDB) Verify ¶
func (db *ChecksumDB) Verify(path string) error
Verify checks whether the given file is valid according to the checksum database.
type Environment ¶
type Environment struct { CI bool Name string // name of the environment Repo string // name of GitHub repo Commit, Date, Branch, Tag string // Git info Buildnum string IsPullRequest bool IsCronJob 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 GoToolchain ¶
type GoToolchain struct { Root string // GOROOT // Cross-compilation variables. These are set when running the go tool. GOARCH string GOOS string CC string }
func (*GoToolchain) Go ¶
func (g *GoToolchain) Go(command string, args ...string) *exec.Cmd
Go creates an invocation of the go command.
func (*GoToolchain) Install ¶
func (g *GoToolchain) Install(gobin string, args ...string) *exec.Cmd
Install creates an invocation of 'go install'. The command is configured to output executables to the given 'gobin' directory.
This can be used to install auxiliary build tools without modifying the local go.mod and go.sum files. To install tools which are not required by go.mod, ensure that all module paths in 'args' contain a module version suffix (e.g. "...@latest").
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
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