mirror of
https://github.com/drone/drone-cli.git
synced 2024-09-23 04:21:09 +02:00
57 lines
991 B
Go
57 lines
991 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
|
|
"github.com/codegangsta/cli"
|
|
"github.com/drone/drone-go/drone"
|
|
)
|
|
|
|
var DeployCmd = cli.Command{
|
|
Name: "deploy",
|
|
Usage: "deploy code",
|
|
Action: func(c *cli.Context) {
|
|
handle(c, deployCmd)
|
|
},
|
|
}
|
|
|
|
func deployCmd(c *cli.Context, client drone.Client) error {
|
|
var (
|
|
nameParam = c.Args().Get(0)
|
|
numParam = c.Args().Get(1)
|
|
envParam = c.Args().Get(2)
|
|
|
|
err error
|
|
owner string
|
|
name string
|
|
num int
|
|
)
|
|
|
|
num, err = strconv.Atoi(numParam)
|
|
if err != nil {
|
|
return fmt.Errorf("Invalid or missing build number")
|
|
}
|
|
owner, name, err = parseRepo(nameParam)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
build, err := client.Build(owner, name, num)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if build.Event == drone.EventPull {
|
|
return fmt.Errorf("Cannot trigger a pull request deployment")
|
|
}
|
|
|
|
deploy, err := client.Deploy(owner, name, num, envParam)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
fmt.Println(deploy.Number)
|
|
fmt.Println(deploy.Status)
|
|
return nil
|
|
}
|