branch

package
v0.0.0-...-e560ebb Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2021 License: BSD-3-Clause Imports: 27 Imported by: 0

Documentation

Index

Constants

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

VersionFileProjectPath contains the path to the project containing the version file, relative to the checkout root.

Variables

View Source
var (
	// StdoutLog contains the stdout logger for this package.
	StdoutLog *log.Logger
	// StderrLog contains the stderr logger for this package.
	StderrLog *log.Logger
	// WorkingManifest contains the working manifest this package
	// (i.e. the manifest being used as the source of truth).
	WorkingManifest repo.Manifest
	// ManifestCheckout is a path to the manifest project checkout.
	ManifestCheckout string
)
View Source
var (
	// ManifestProjects contains information about the manifest projects.
	ManifestProjects = map[string]bool{
		"chromiumos/manifest":        true,
		"chromeos/manifest-internal": true,
	}
	// BranchPrefix is a regex matching 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")
)
View Source
var (
	// CommandRunnerImpl is the command runner impl currently being used by the
	// package. Exists for testing purposes.
	CommandRunnerImpl cmd.CommandRunner = cmd.RealCommandRunner{}
)

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 BranchesFromMilestone

func BranchesFromMilestone(chromeosCheckout string, minMilestone int) ([]string, error)

BranchesFromMilestone returns a list of branch names in the sentinel manifest-internal repository associated with a milestone >= the specified minimum milestone.

func BumpForCreate

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

BumpForCreate bumps the version in mv.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, branchName 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

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

func ExtractBuildNum

func ExtractBuildNum(branch string) int

ExtractBuildNum extracts the build number from the branch name, e.g. 13729 from release-R89-13729.B. Returns -1 if the branch name does not contain a build number.

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{})

LogErr 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

NewBranchName determines 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 ParseBuildspec

func ParseBuildspec(buildspec string) (*cv.VersionInfo, error)

ParseBuildspec returns version information for a buildspec path of the form 85/13277.0.0.xml.

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