in internal/pkg/cli/deploy.go [751:828]
func BuildDeployCmd() *cobra.Command {
vars := deployVars{}
var initEnvironment bool
var deployEnvironment bool
cmd := &cobra.Command{
Use: "deploy",
Short: "Deploy one or more Copilot jobs or services.",
Long: "Deploy one or more Copilot jobs or services.",
Example: `
Deploys a service named "frontend" to a "test" environment.
/code $ copilot deploy --name frontend --env test
Deploys a job named "mailer" with additional resource tags to a "prod" environment.
/code $ copilot deploy -n mailer -e prod --resource-tags source/revision=bb133e7,deployment/initiator=manual
Initializes and deploys an environment named "test" in us-west-2 under the "default" profile with local manifest,
then deploys a service named "api"
/code $ copilot deploy --init-env --deploy-env --env test --name api --profile default --region us-west-2
Initializes and deploys a service named "backend" to a "prod" environment.
/code $ copilot deploy --init-wkld --env prod --name backend
Deploys all local, initialized workloads in no particular order.
/code $ copilot deploy --all --env prod --name backend
Deploys multiple workloads in a prescribed order (fe and worker, then be).
/code $ copilot deploy -n fe/1 -n be/2 -n worker/1
Initializes and deploys all local workloads after deploying environment changes.
/code $ copilot deploy --all --init-wkld --deploy-env -e prod`,
RunE: runCmdE(func(cmd *cobra.Command, args []string) error {
opts, err := newDeployOpts(vars)
if err != nil {
return err
}
if cmd.Flags().Changed(yesInitEnvFlag) {
opts.yesInitEnv = aws.Bool(false)
if initEnvironment {
opts.yesInitEnv = aws.Bool(true)
}
}
if cmd.Flags().Changed(deployEnvFlag) {
opts.deployEnv = aws.Bool(false)
if deployEnvironment {
opts.deployEnv = aws.Bool(true)
}
}
if err := opts.Run(); err != nil {
return err
}
return nil
}),
}
cmd.Flags().StringVarP(&vars.appName, appFlag, appFlagShort, tryReadingAppName(), appFlagDescription)
cmd.Flags().StringSliceVarP(&vars.workloadNames, nameFlag, nameFlagShort, nil, workloadsFlagDescription)
cmd.Flags().StringVarP(&vars.envName, envFlag, envFlagShort, "", envFlagDescription)
cmd.Flags().StringVar(&vars.imageTag, imageTagFlag, "", imageTagFlagDescription)
cmd.Flags().StringToStringVar(&vars.resourceTags, resourceTagsFlag, nil, resourceTagsFlagDescription)
cmd.Flags().BoolVar(&vars.forceNewUpdate, forceFlag, false, forceFlagDescription)
cmd.Flags().BoolVar(&vars.disableRollback, noRollbackFlag, false, noRollbackFlagDescription)
cmd.Flags().BoolVar(&vars.allowWkldDowngrade, allowDowngradeFlag, false, allowDowngradeFlagDescription)
cmd.Flags().BoolVar(&vars.detach, detachFlag, false, detachFlagDescription)
cmd.Flags().BoolVar(&deployEnvironment, deployEnvFlag, false, deployEnvFlagDescription)
cmd.Flags().BoolVar(&initEnvironment, yesInitEnvFlag, false, yesInitEnvFlagDescription)
cmd.Flags().BoolVar(&vars.yesInitWkld, yesInitWorkloadFlag, false, yesInitWorkloadFlagDescription)
cmd.Flags().BoolVar(&vars.deployAllWorkloads, allFlag, false, allWorkloadsFlagDescription)
cmd.Flags().StringVar(&vars.profile, profileFlag, "", profileFlagDescription)
cmd.Flags().StringVar(&vars.tempCreds.AccessKeyID, accessKeyIDFlag, "", accessKeyIDFlagDescription)
cmd.Flags().StringVar(&vars.tempCreds.SecretAccessKey, secretAccessKeyFlag, "", secretAccessKeyFlagDescription)
cmd.Flags().StringVar(&vars.tempCreds.SessionToken, sessionTokenFlag, "", sessionTokenFlagDescription)
cmd.Flags().StringVar(&vars.region, regionFlag, "", envRegionTokenFlagDescription)
cmd.SetUsageTemplate(template.Usage)
cmd.Annotations = map[string]string{
"group": group.Release,
}
return cmd
}