branch

package
v0.0.0-...-ff0388d Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2021 License: BSD-3-Clause Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const VersionFileProjectPath = "src/third_party/chromiumos-overlay"

Variables

View Source
var (
	StdoutLog        *log.Logger
	StderrLog        *log.Logger
	WorkingManifest  repo.Manifest
	RepoToolPath     string
	ManifestCheckout string
)
View Source
var (
	ManifestProjects = map[string]bool{
		"chromiumos/manifest":        true,
		"chromeos/manifest-internal": true,
	}
	// A Chrome OS branch name as a prefix to a string, starting with a dash.
	// e.g. -release-R77-12371.B
	BranchPrefix = regexp.MustCompile("^-.*[.]B")
)

Functions

func AssertBranchesDoNotExist

func AssertBranchesDoNotExist(branches []ProjectBranch, workerCount int) error

AssertBranchesDoNotExist checks that branches do not already exist.

func BranchExists

func BranchExists(branchPattern *regexp.Regexp, buildNumber string, branchType string, remoteBranches []string) (bool, error)

BranchExists checks that a branch matching the given pattern exists in a particular project.

func BranchType

func BranchType(release, factory, firmware, stabilize bool, custom string) (string, bool)

BranchType determines the type of branch to be created.

func BumpForCreate

func BumpForCreate(componentToBump chromeos_version.VersionComponent, release, push bool, branchName, sourceUpstream string) error

BumpForCreate bumps the version in chromeos_version.sh, as needed, in the source branch for a branch creation command.

func CheckIfAlreadyBranched

func CheckIfAlreadyBranched(vinfo mv.VersionInfo, manifestInternal repo.Project, force bool, branchType string) error

CheckIfAlreadyBranched checks if there's already a branch for the desired new branch to create on the manifest-internal repo.

func CheckSelfGroupMembership

func CheckSelfGroupMembership(authedClient *http.Client, gerritUrl, expectedGroup string) (bool, error)

CheckSelfGroupMembership checks if the authenticated user is in the given group on the given Gerrit host. It returns a bool indicating whether or not that's the case, or an error if the lookup fails.

func CreateRemoteBranches

func CreateRemoteBranches(branches []ProjectBranch, dryRun, force bool, workerCount int) error

CreateRemoteBranches makes the requested branches on the remote Gerrit hosts using git checkouts and pushes.

func CreateRemoteBranchesApi

func CreateRemoteBranchesApi(authedClient *http.Client, branches []GerritProjectBranch, dryRun bool, gerritQps float64) error

CreateRemoteBranches creates a bunch of branches on remote Gerrit instances for the specified inputs using the Gerrit API.

func GetProjectCheckout

func GetProjectCheckout(projectPath string, opts *CheckoutOptions) (string, error)

GetProjectCheckout gets a local checkout of a particular project.

func InitWorkingManifest

func InitWorkingManifest(manifestUrl, br string) error

InitWorkingManifest initializes a local working manifest (a.k.a. buildspec) from a Gerrit path.

func LogErr

func LogErr(format string, a ...interface{})

LogOut logs to stderr.

func LogOut

func LogOut(format string, a ...interface{})

LogOut logs to stdout.

func NewBranchName

func NewBranchName(vinfo mv.VersionInfo, custom, descriptor string, release, factory, firmware, stabilize bool) string

Determine the name for a new branch. By convention, standard branch names must end with the stripped version string from which they were created, followed by '.B'.

For example:

  • A branch created from 1.0.0 must end with -1.B
  • A branch created from 1.2.0 must end with -1.2.B

Release branches have a slightly different naming scheme. They include

the milestone from which they were created. Example: release-R12-1.2.B

func ProjectFetchUrl

func ProjectFetchUrl(projectPath string) (string, error)

ProjectFetchUrl returns the fetch URL for a remote Project.

func RepairManifestRepositories

func RepairManifestRepositories(branches []ProjectBranch, dryRun, force bool) error

RepairManifestRepositories repairs all manifests in all manifest repositories on the current branch and commits the changes. It then pushes the state of the local git branches to remote.

func WhichVersionShouldBump

func WhichVersionShouldBump(vinfo mv.VersionInfo) (mv.VersionComponent, error)

WhichVersionShouldBump returns which version is incremented by builds on a new branch.

Types

type CheckoutOptions

type CheckoutOptions struct {
	// If set, will get only this Ref.
	// If not set, will get the full repo.
	Ref string
	// To be used with the git clone --depth flag.
	Depth int
}

CheckoutOptions describes how to check out a Git repo.

type GerritProjectBranch

type GerritProjectBranch struct {
	GerritURL string
	Project   string
	Branch    string
	SrcRef    string
}

GerritProjectBranch contains all the details for creating a new Gerrit branch based on an existing one.

func GerritProjectBranches

func GerritProjectBranches(pbs []ProjectBranch) ([]GerritProjectBranch, error)

GerritProjectBranches creates a slice of GerritProjectBranch objects, which are representations of ProjectBranches that are useful for API based branching.

func GetNonManifestBranches

func GetNonManifestBranches(branches []GerritProjectBranch) []GerritProjectBranch

GetNonManifestBranches filters out non-Manifest branches.

type ManifestRepo

type ManifestRepo struct {
	ProjectCheckout string
	Project         repo.Project
}

func (*ManifestRepo) RepairManifestsOnDisk

func (m *ManifestRepo) RepairManifestsOnDisk(branchesByPath map[string]string) error

RepairManifestsOnDisk repairs the revision and upstream attributes of manifest elements on disk for the given projects.

type ProjectBranch

type ProjectBranch struct {
	Project    repo.Project
	BranchName string
}

ProjectBranch is a project and a branch.

func ProjectBranches

func ProjectBranches(br, original string) []ProjectBranch

ProjectBranches returns a list of ProjectBranch structs: one for each branchable project. The original parameter is the CrOS branch from which the current checkout stems.

Jump to

Keyboard shortcuts

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