fix provisioning
This commit is contained in:
parent
6e99f1c057
commit
f14bdb39d1
1 changed files with 27 additions and 21 deletions
|
|
@ -77,29 +77,9 @@ func (a *App) deployProjectFromMain(_ context.Context, p Project) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
repoDir := filepath.Join(projectDir, "repo")
|
if err := a.syncProjectRepoFromMain(p, projectDir); err != nil {
|
||||||
if _, err := os.Stat(repoDir); err != nil {
|
|
||||||
return fmt.Errorf("repo checkout missing at %s (trigger deploy webhook/push first)", repoDir)
|
|
||||||
}
|
|
||||||
binDir := filepath.Join(projectDir, "bin")
|
|
||||||
if err := os.MkdirAll(binDir, 0o755); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := os.Stat(repoDir); os.IsNotExist(err) {
|
|
||||||
if err := runCmd("git", "clone", "--branch", "main", "--single-branch", p.RepoURL, repoDir); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if err := runCmd("git", "-C", repoDir, "remote", "set-url", "origin", p.RepoURL); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := runCmd("git", "-C", repoDir, "fetch", "origin", "main", "--prune"); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := runCmd("git", "-C", repoDir, "reset", "--hard", "origin/main"); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if err := a.buildProjectBinary(p); err != nil {
|
if err := a.buildProjectBinary(p); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -111,6 +91,12 @@ func (a *App) buildProjectBinary(p Project) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if p.RepoURL == "" {
|
||||||
|
return errors.New("project has no repo_url to build from")
|
||||||
|
}
|
||||||
|
if err := a.syncProjectRepoFromMain(p, projectDir); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
repoDir := filepath.Join(projectDir, "repo")
|
repoDir := filepath.Join(projectDir, "repo")
|
||||||
binDir := filepath.Join(projectDir, "bin")
|
binDir := filepath.Join(projectDir, "bin")
|
||||||
if err := os.MkdirAll(binDir, 0o755); err != nil {
|
if err := os.MkdirAll(binDir, 0o755); err != nil {
|
||||||
|
|
@ -128,3 +114,23 @@ func (a *App) buildProjectBinary(p Project) error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *App) syncProjectRepoFromMain(p Project, projectDir string) error {
|
||||||
|
repoDir := filepath.Join(projectDir, "repo")
|
||||||
|
if _, err := os.Stat(repoDir); os.IsNotExist(err) {
|
||||||
|
if err := runCmd("git", "clone", "--branch", "main", "--single-branch", p.RepoURL, repoDir); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err := runCmd("git", "-C", repoDir, "remote", "set-url", "origin", p.RepoURL); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := runCmd("git", "-C", repoDir, "fetch", "origin", "main", "--prune"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := runCmd("git", "-C", repoDir, "reset", "--hard", "origin/main"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue