Documentation ¶
Index ¶
- Variables
- func AddFile(a Archive, file string) error
- func ExtractArchive(archive string, dest string) error
- func GoTool(tool string, args ...string) *exec.Cmd
- func LocalAssets(path string) ([]string, error)
- func MustRun(cmd *exec.Cmd)
- func MustRunCommand(cmd string, args ...string)
- 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 SHA256Assets(files []string) ([]string, error)
- func UploadSFTP(identityFile, host, dir string, files []string) error
- func WriteArchive(name string, files []string) (err error)
- type Archive
- type ChecksumDB
- type Environment
- type GitHub
- type GitHubClient
- func (c *GitHubClient) CreateRelease(ctx context.Context, req *github.RepositoryRelease) (*github.RepositoryRelease, error)
- func (c *GitHubClient) DeleteAsset(ctx context.Context, assetID int64) error
- func (c *GitHubClient) DeleteRelease(ctx context.Context, releaseID int64) error
- func (c *GitHubClient) DeleteTag(ctx context.Context, tag string) error
- func (c *GitHubClient) EditRelease(ctx context.Context, releaseID int64, req *github.RepositoryRelease) (*github.RepositoryRelease, error)
- func (c *GitHubClient) GetRelease(ctx context.Context, tag string) (*github.RepositoryRelease, error)
- func (c *GitHubClient) ListAssets(ctx context.Context, releaseID int64) ([]*github.ReleaseAsset, error)
- func (c *GitHubClient) SetUploadURL(urlStr string) error
- func (c *GitHubClient) UploadAsset(ctx context.Context, releaseID int64, filename string) (*github.ReleaseAsset, error)
- 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")
var (
ErrReleaseNotFound = errors.New("release is not found")
)
ErrReleaseNotFound contains the error for when a release is not found
Functions ¶
func ExtractArchive ¶ added in v0.6.0
ExtractArchive unpacks a .zip or .tar.gz archive to the destination directory.
func GoTool ¶
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.
go run build/ci.go ...
runs using go 1.12.1 and invokes go 1.12.1 tools from the same GOROOT. This is also important because runtime.Version checks on the host should match the tools that are run.
func LocalAssets ¶ added in v0.7.0
LocalAssets contains the local objects to be uploaded
func MustRunCommand ¶
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 SHA256Assets ¶ added in v0.7.0
SHA256Assets contains the local objects SHA Hashes
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 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 { 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
func LocalEnv ¶
func LocalEnv() Environment
LocalEnv returns build environment metadata gathered from git.
func (Environment) String ¶
func (env Environment) String() string
type GitHub ¶ added in v0.7.0
type GitHub interface { CreateRelease(ctx context.Context, req *github.RepositoryRelease) (*github.RepositoryRelease, error) GetRelease(ctx context.Context, tag string) (*github.RepositoryRelease, error) EditRelease(ctx context.Context, releaseID int64, req *github.RepositoryRelease) (*github.RepositoryRelease, error) DeleteRelease(ctx context.Context, releaseID int64) error DeleteTag(ctx context.Context, tag string) error UploadAsset(ctx context.Context, releaseID int64, filename string) (*github.ReleaseAsset, error) DeleteAsset(ctx context.Context, assetID int64) error ListAssets(ctx context.Context, releaseID int64) ([]*github.ReleaseAsset, error) SetUploadURL(urlStr string) error }
GitHub contains the functions necessary for interacting with GitHub release objects
func NewGitHubClient ¶ added in v0.7.0
NewGitHubClient creates and initializes a new GitHubClient
type GitHubClient ¶ added in v0.7.0
GitHubClient is the client for interacting with the GitHub API
func (*GitHubClient) CreateRelease ¶ added in v0.7.0
func (c *GitHubClient) CreateRelease(ctx context.Context, req *github.RepositoryRelease) (*github.RepositoryRelease, error)
CreateRelease creates a new release object in the GitHub API
func (*GitHubClient) DeleteAsset ¶ added in v0.7.0
func (c *GitHubClient) DeleteAsset(ctx context.Context, assetID int64) error
DeleteAsset deletes assets from a given release object
func (*GitHubClient) DeleteRelease ¶ added in v0.7.0
func (c *GitHubClient) DeleteRelease(ctx context.Context, releaseID int64) error
DeleteRelease deletes a release object within the GitHub API
func (*GitHubClient) DeleteTag ¶ added in v0.7.0
func (c *GitHubClient) DeleteTag(ctx context.Context, tag string) error
DeleteTag deletes a tag from the GitHub API
func (*GitHubClient) EditRelease ¶ added in v0.7.0
func (c *GitHubClient) EditRelease(ctx context.Context, releaseID int64, req *github.RepositoryRelease) (*github.RepositoryRelease, error)
EditRelease edit a release object within the GitHub API
func (*GitHubClient) GetRelease ¶ added in v0.7.0
func (c *GitHubClient) GetRelease(ctx context.Context, tag string) (*github.RepositoryRelease, error)
GetRelease queries the GitHub API for a specified release object
func (*GitHubClient) ListAssets ¶ added in v0.7.0
func (c *GitHubClient) ListAssets(ctx context.Context, releaseID int64) ([]*github.ReleaseAsset, error)
ListAssets lists assets associated with a given release
func (*GitHubClient) SetUploadURL ¶ added in v0.7.0
func (c *GitHubClient) SetUploadURL(urlStr string) error
SetUploadURL constructs the upload URL for a release
func (*GitHubClient) UploadAsset ¶ added in v0.7.0
func (c *GitHubClient) UploadAsset(ctx context.Context, releaseID int64, filename string) (*github.ReleaseAsset, error)
UploadAsset uploads specified assets to a given release object
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