Skip to content

Commit fa313c2

Browse files
committed
Replaced Dokku integration with file execution
1 parent d443428 commit fa313c2

1 file changed

Lines changed: 16 additions & 74 deletions

File tree

main.go

Lines changed: 16 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -16,39 +16,26 @@ import "github.com/google/go-github/github"
1616
func main() {
1717
fmt.Println("Deployer")
1818

19-
username := flag.String("u", "", "GitHub username (required)")
20-
password := flag.String("p", "", "GitHub password (required)")
21-
org := flag.String("org", "", "GitHub org (required)")
22-
repo := flag.String("repo", "", "GitHub repo (required)")
23-
env := flag.String("env", "", "Github deployment environment (required)")
24-
app := flag.String("app", "", "Dokku application name (required)")
25-
sleepInt := flag.Int( "sleep", 30, "Time to sleep between loops (defaults to 30 seconds)")
19+
username := flag.String("u", "", "GitHub username (required)")
20+
password := flag.String("p", "", "GitHub password (required)")
21+
org := flag.String("org", "", "GitHub org (required)")
22+
repo := flag.String("repo", "", "GitHub repo (required)")
23+
env := flag.String("env", "", "Github deployment environment (required)")
24+
file := flag.String("file", "", "File to execute when new deployment is available (required)")
25+
sleepInt := flag.Int( "sleep", 30, "Time to sleep between loops (defaults to 30 seconds)")
2626

2727
flag.Parse()
2828

29-
if *app == "" {
29+
if *username == "" || *password == "" || *org == "" || *repo == "" || *env == "" || *file == "" {
3030
flag.PrintDefaults()
3131
os.Exit(1)
3232
}
3333

34-
fmt.Println(*username, *password, *org, *repo, *env, *app)
34+
fmt.Println(*username, *password, *org, *repo, *env, *file)
3535

3636
sleepDuration := time.Duration(*sleepInt) * time.Second
3737
fmt.Printf("Sleep duration: %v\n", sleepDuration)
3838

39-
repoPath := "." + *app;
40-
_, err := os.Stat(repoPath)
41-
if err != nil {
42-
repoURL := "https://" + *username + ":" + *password + "@github.com/" + *org + "/" + *repo + ".git"
43-
err = cloneRepo(repoURL, repoPath)
44-
if err != nil {
45-
log.Printf("Problem cloning repo %v\n", err)
46-
os.Exit(1)
47-
}
48-
}
49-
50-
addRepoDokkuRemote(repoPath, *app)
51-
5239
ctx := context.Background()
5340
tp := github.BasicAuthTransport{
5441
Username: *username,
@@ -68,13 +55,6 @@ func main() {
6855

6956
log.Println(*deployment.ID, *deployment.Ref, *deployment.Environment)
7057

71-
err = fetchRepo(repoPath)
72-
if err != nil {
73-
log.Printf("Problem in fetching repo %v\n", err)
74-
sleep(sleepDuration)
75-
continue
76-
}
77-
7858
gist, _, err := createDeploymentGist(ctx, client, deployment)
7959

8060
if err != nil {
@@ -88,12 +68,12 @@ func main() {
8868
createDeploymentStatus(ctx, client, deployment, *org, *repo, "pending", *gist.HTMLURL)
8969

9070
var output bytes.Buffer
91-
cmd := deployToDokku(repoPath, *deployment.Ref)
71+
cmd := executeFile(*file)
9272
cmd.Stdout = io.MultiWriter(&output, os.Stdout)
9373
cmd.Stderr = cmd.Stdout
9474
err = cmd.Run()
9575
if err != nil {
96-
log.Printf("Problem in deploying to dokku %v\n", err)
76+
log.Printf("Problem with file execution %v\n", err)
9777
createDeploymentStatus(ctx, client, deployment, *org, *repo, "error", *gist.HTMLURL)
9878
updateDeploymentGist(ctx, client, gist, output.String())
9979
sleep(sleepDuration)
@@ -112,47 +92,9 @@ func sleep(duration time.Duration) {
11292
time.Sleep(duration)
11393
}
11494

115-
func cloneRepo(repoURL string, repoPath string) (error) {
116-
log.Println("Cloning repo ", repoURL)
117-
cmd := exec.Command("git", "clone", repoURL, repoPath)
118-
cmd.Stdout = os.Stdout
119-
cmd.Stderr = os.Stderr
120-
err := cmd.Run()
121-
return err
122-
}
123-
124-
func addRepoDokkuRemote(repoPath string, app string) (error) {
125-
log.Println("Adding repo dokku remote ", repoPath, app)
126-
cmd := exec.Command("git", "remote", "add", "dokku", "/home/dokku/" + app)
127-
cmd.Dir = repoPath
128-
cmd.Stdout = os.Stdout
129-
cmd.Stderr = os.Stderr
130-
err := cmd.Run()
131-
return err
132-
}
133-
134-
func fetchRepo(repoPath string) (error) {
135-
log.Println("Fetchin repo ", repoPath)
136-
cmd := exec.Command("git", "fetch", "origin", "--force", "--tags")
137-
cmd.Dir = repoPath
138-
cmd.Stdout = os.Stdout
139-
cmd.Stderr = os.Stderr
140-
err := cmd.Run()
141-
if err != nil {
142-
return err
143-
}
144-
cmd = exec.Command("git", "reset", "--hard", "origin/HEAD")
145-
cmd.Dir = repoPath
146-
cmd.Stdout = os.Stdout
147-
cmd.Stderr = os.Stderr
148-
err = cmd.Run()
149-
return err
150-
}
151-
152-
func deployToDokku(repoPath string, ref string) (*exec.Cmd) {
153-
log.Println("Deploying repo ", repoPath)
154-
cmd := exec.Command("git", "push", "-f", "dokku", ref + ":master")
155-
cmd.Dir = repoPath
95+
func executeFile(filePath string) *exec.Cmd {
96+
log.Println("Executing File", filePath)
97+
cmd := exec.Command(filePath)
15698
// cmd := exec.Command("bin/deploy-stub")
15799
return cmd
158100
}
@@ -173,12 +115,12 @@ func getDeployment(ctx context.Context, client *github.Client, org string, repo
173115
return nil, resp, err
174116
}
175117
deployment := deployments[0]
176-
118+
177119
statuses, resp, err := client.Repositories.ListDeploymentStatuses(ctx, org, repo, *deployment.ID, &github.ListOptions{ PerPage: 1 })
178120
if err != nil {
179121
return deployment, resp, err
180122
}
181-
123+
182124
if len(statuses) > 0 {
183125
err := errors.New("Deployment statuses already present")
184126
return deployment, resp, err

0 commit comments

Comments
 (0)