(f factory.Factory)
| 136 | } |
| 137 | |
| 138 | func NewCmdDeploy(f factory.Factory) *cobra.Command { |
| 139 | deployFlags := NewDeployFlags() |
| 140 | cmd := &cobra.Command{ |
| 141 | Use: "deploy", |
| 142 | Short: "Deploy releases", |
| 143 | Long: "Deploy releases in Octopus Deploy", |
| 144 | Example: heredoc.Docf(` |
| 145 | %[1]s release deploy # fully interactive |
| 146 | %[1]s release deploy --project MyProject --version 1.0 --environment Dev |
| 147 | %[1]s release deploy --project MyProject --version 1.0 --tenant-tag Regions/East --tenant-tag Regions/South |
| 148 | %[1]s release deploy -p MyProject --version 1.0 -e Dev --skip InstallStep --variable VarName:VarValue |
| 149 | %[1]s release deploy -p MyProject --version 1.0 -e Dev --force-package-download --guided-failure true -f basic |
| 150 | `, constants.ExecutableName), |
| 151 | RunE: func(cmd *cobra.Command, args []string) error { |
| 152 | if len(args) > 0 && deployFlags.Project.Value == "" { |
| 153 | deployFlags.Project.Value = args[0] |
| 154 | } |
| 155 | |
| 156 | return deployRun(cmd, f, deployFlags) |
| 157 | }, |
| 158 | } |
| 159 | |
| 160 | flags := cmd.Flags() |
| 161 | flags.StringVarP(&deployFlags.Project.Value, deployFlags.Project.Name, "p", "", "Name or ID of the project to deploy the release from") |
| 162 | flags.StringVarP(&deployFlags.ReleaseVersion.Value, deployFlags.ReleaseVersion.Name, "", "", "Release version to deploy") |
| 163 | flags.StringArrayVarP(&deployFlags.Environments.Value, deployFlags.Environments.Name, "e", nil, "Deploy to this environment (can be specified multiple times)") |
| 164 | flags.StringArrayVarP(&deployFlags.Tenants.Value, deployFlags.Tenants.Name, "", nil, "Deploy to this tenant (can be specified multiple times)") |
| 165 | flags.StringArrayVarP(&deployFlags.TenantTags.Value, deployFlags.TenantTags.Name, "", nil, "Deploy to tenants matching this tag (can be specified multiple times). Format is 'Tag Set Name/Tag Name', such as 'Regions/South'.") |
| 166 | flags.StringVarP(&deployFlags.DeployAt.Value, deployFlags.DeployAt.Name, "", "", "Deploy at a later time. Deploy now if omitted. TODO date formats and timezones!") |
| 167 | flags.StringVarP(&deployFlags.MaxQueueTime.Value, deployFlags.MaxQueueTime.Name, "", "", "Cancel the deployment if it hasn't started within this time period.") |
| 168 | flags.StringArrayVarP(&deployFlags.Variables.Value, deployFlags.Variables.Name, "v", nil, "Set the value for a prompted variable in the format Label:Value") |
| 169 | flags.BoolVarP(&deployFlags.UpdateVariables.Value, deployFlags.UpdateVariables.Name, "", false, "Overwrite the release variable snapshot by re-importing variables from the project.") |
| 170 | flags.StringArrayVarP(&deployFlags.ExcludedSteps.Value, deployFlags.ExcludedSteps.Name, "", nil, "Exclude specific steps from the deployment") |
| 171 | flags.StringVarP(&deployFlags.GuidedFailureMode.Value, deployFlags.GuidedFailureMode.Name, "", "", "Enable Guided failure mode (true/false/default)") |
| 172 | flags.BoolVarP(&deployFlags.ForcePackageDownload.Value, deployFlags.ForcePackageDownload.Name, "", false, "Force re-download of packages") |
| 173 | flags.StringArrayVarP(&deployFlags.DeploymentTargets.Value, deployFlags.DeploymentTargets.Name, "", nil, "Deploy to this target (can be specified multiple times)") |
| 174 | flags.StringArrayVarP(&deployFlags.ExcludeTargets.Value, deployFlags.ExcludeTargets.Name, "", nil, "Deploy to targets except for this (can be specified multiple times)") |
| 175 | flags.StringArrayVarP(&deployFlags.DeploymentFreezeNames.Value, deployFlags.DeploymentFreezeNames.Name, "", nil, "Override this deployment freeze (can be specified multiple times)") |
| 176 | flags.StringVarP(&deployFlags.DeploymentFreezeOverrideReason.Value, deployFlags.DeploymentFreezeOverrideReason.Name, "", "", "Reason for overriding a deployment freeze") |
| 177 | |
| 178 | flags.SortFlags = false |
| 179 | |
| 180 | // flags aliases for compat with old .NET CLI |
| 181 | flagAliases := make(map[string][]string, 10) |
| 182 | util.AddFlagAliasesString(flags, FlagReleaseVersion, flagAliases, FlagAliasReleaseNumberLegacy) |
| 183 | util.AddFlagAliasesStringSlice(flags, FlagEnvironment, flagAliases, FlagAliasDeployToLegacy, FlagAliasEnv) |
| 184 | util.AddFlagAliasesStringSlice(flags, FlagTenantTag, flagAliases, FlagAliasTag, FlagAliasTenantTagLegacy) |
| 185 | util.AddFlagAliasesString(flags, FlagDeployAt, flagAliases, FlagAliasWhen, FlagAliasDeployAtLegacy) |
| 186 | util.AddFlagAliasesString(flags, FlagDeployAtExpiry, flagAliases, FlagDeployAtExpire, FlagAliasNoDeployAfterLegacy) |
| 187 | util.AddFlagAliasesString(flags, FlagUpdateVariables, flagAliases, FlagAliasUpdateVariablesLegacy) |
| 188 | util.AddFlagAliasesString(flags, FlagGuidedFailure, flagAliases, FlagAliasGuidedFailureMode, FlagAliasGuidedFailureModeLegacy) |
| 189 | util.AddFlagAliasesBool(flags, FlagForcePackageDownload, flagAliases, FlagAliasForcePackageDownloadLegacy) |
| 190 | util.AddFlagAliasesStringSlice(flags, FlagDeploymentTarget, flagAliases, FlagAliasTarget, FlagAliasSpecificMachines) |
| 191 | util.AddFlagAliasesStringSlice(flags, FlagExcludeDeploymentTarget, flagAliases, FlagAliasExcludeTarget, FlagAliasExcludeMachines) |
| 192 | |
| 193 | cmd.PreRunE = func(cmd *cobra.Command, _ []string) error { |
| 194 | util.ApplyFlagAliases(cmd.Flags(), flagAliases) |
| 195 | return nil |
nothing calls this directly
no test coverage detected