Documentation
¶
Index ¶
- Constants
- func AskPackageOverrideLoop(packageVersionBaseline []*StepPackageVersion, defaultPackageVersion string, ...) ([]*StepPackageVersion, []*PackageVersionOverride, error)
- func AskQuestions(octopus *octopusApiClient.Client, stdout io.Writer, asker question.Asker, ...) error
- func NewCmdCreate(f factory.Factory) *cobra.Command
- type AmbiguousPackageVersionOverride
- type CreateFlags
- type PackageVersionOverride
- type StepPackageVersion
Constants ¶
const ( FlagProject = "project" FlagChannel = "channel" FlagPackageVersionSpec = "package" FlagVersion = "version" FlagAliasReleaseNumberLegacy = "releaseNumber" // alias for FlagVersion FlagPackageVersion = "package-version" FlagAliasDefaultPackageVersion = "default-package-version" // alias for FlagPackageVersion FlagAliasPackageVersionLegacy = "packageVersion" // alias for FlagPackageVersion FlagAliasDefaultPackageVersionLegacy = "defaultPackageVersion" // alias for FlagPackageVersion FlagReleaseNotes = "release-notes" FlagAliasReleaseNotesLegacy = "releaseNotes" FlagReleaseNotesFile = "release-notes-file" FlagAliasReleaseNotesFileLegacy = "releaseNotesFile" FlagAliasReleaseNoteFileLegacy = "releaseNoteFile" FlagGitRef = "git-ref" FlagAliasGitRefLegacy = "gitRef" FlagAliasGitRefRef = "ref" // alias for FlagGitRef FlagGitCommit = "git-commit" FlagAliasGitCommitLegacy = "gitCommit" FlagIgnoreExisting = "ignore-existing" FlagAliasIgnoreExistingLegacy = "ignoreExisting" FlagIgnoreChannelRules = "ignore-channel-rules" FlagAliasIgnoreChannelRulesLegacy = "ignoreChannelRules" )
Variables ¶
This section is empty.
Functions ¶
func AskPackageOverrideLoop ¶
func AskPackageOverrideLoop( packageVersionBaseline []*StepPackageVersion, defaultPackageVersion string, initialPackageOverrideFlags []string, asker question.Asker, stdout io.Writer) ([]*StepPackageVersion, []*PackageVersionOverride, error)
func AskQuestions ¶
Types ¶
type AmbiguousPackageVersionOverride ¶
type AmbiguousPackageVersionOverride struct { ActionNameOrPackageID string PackageReferenceName string Version string }
AmbiguousPackageVersionOverride tells us that we want to set the version of some package to `Version` but it's not clear whether ActionNameOrPackageID refers to an ActionName or PackageID at this point
func ParsePackageOverrideString ¶
func ParsePackageOverrideString(packageOverride string) (*AmbiguousPackageVersionOverride, error)
ParsePackageOverrideString parses a package version override string into a structure. Logic should align with PackageVersionResolver in the Octopus Server and .NET CLI In cases where things are ambiguous, we look in steps for matching values to see if something is a PackageID or a StepName
type CreateFlags ¶
type CreateFlags struct { Project *flag.Flag[string] Channel *flag.Flag[string] GitRef *flag.Flag[string] GitCommit *flag.Flag[string] PackageVersion *flag.Flag[string] ReleaseNotes *flag.Flag[string] ReleaseNotesFile *flag.Flag[string] Version *flag.Flag[string] IgnoreExisting *flag.Flag[bool] IgnoreChannelRules *flag.Flag[bool] PackageVersionSpec *flag.Flag[[]string] }
func NewCreateFlags ¶
func NewCreateFlags() *CreateFlags
type PackageVersionOverride ¶
type PackageVersionOverride struct { ActionName string // optional, but one or both of ActionName or PackageID must be supplied PackageID string // optional, but one or both of ActionName or PackageID must be supplied PackageReferenceName string // optional; use for advanced situations where the same package is referenced multiple times by a single step Version string // required }
func ResolvePackageOverride ¶
func ResolvePackageOverride(override *AmbiguousPackageVersionOverride, steps []*StepPackageVersion) (*PackageVersionOverride, error)
func (*PackageVersionOverride) ToPackageOverrideString ¶
func (p *PackageVersionOverride) ToPackageOverrideString() string
ToPackageOverrideString converts the struct back into a string which the server can parse e.g. StepName:Version. This is the inverse of ParsePackageOverrideString
type StepPackageVersion ¶
type StepPackageVersion struct { // these 3 fields are the main ones for showing the user PackageID string ActionName string // "StepName is an obsolete alias for ActionName, they always contain the same value" Version string // note this may be an empty string, indicating that no version could be found for this package yet // used to locate the deployment process VersioningStrategy Donor Package PackageReferenceName string }
func ApplyPackageOverrides ¶
func ApplyPackageOverrides(packages []*StepPackageVersion, overrides []*PackageVersionOverride) []*StepPackageVersion
func BuildPackageVersionBaseline ¶
func BuildPackageVersionBaseline(octopus *octopusApiClient.Client, deploymentProcessTemplate *deployments.DeploymentProcessTemplate, channel *channels.Channel) ([]*StepPackageVersion, error)
BuildPackageVersionBaseline loads the deployment process template from the server, and for each step+package therein, finds the latest available version satisfying the channel version rules. Result is the list of step+package+versions to use as a baseline. The package version override process takes this as an input and layers on top of it