fix deploy and logs

This commit is contained in:
pavel 2026-05-14 22:00:04 +02:00
commit af8bbf536f
5 changed files with 40 additions and 6 deletions

View file

@ -78,6 +78,9 @@ func (a *App) deployProjectFromMain(_ context.Context, p Project) error {
return err
}
repoDir := filepath.Join(projectDir, "repo")
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
@ -97,6 +100,25 @@ func (a *App) deployProjectFromMain(_ context.Context, p Project) error {
return err
}
}
if err := a.buildProjectBinary(p); err != nil {
return err
}
return runSystemctlUser(p.UnixUser, "restart", p.ServiceName)
}
func (a *App) buildProjectBinary(p Project) error {
projectDir, err := a.projectDirFor(p)
if err != nil {
return err
}
repoDir := filepath.Join(projectDir, "repo")
binDir := filepath.Join(projectDir, "bin")
if err := os.MkdirAll(binDir, 0o755); err != nil {
return err
}
if err := ensureOwnedByUnixUser(binDir, p.UnixUser, 0o755); err != nil {
return err
}
binaryPath := filepath.Join(binDir, "app")
if err := runCmd("go", "-C", repoDir, "build", "-o", binaryPath, "."); err != nil {
return fmt.Errorf("build failed: %w", err)
@ -104,5 +126,5 @@ func (a *App) deployProjectFromMain(_ context.Context, p Project) error {
if err := ensureOwnedByUnixUser(binaryPath, p.UnixUser, 0o755); err != nil {
return err
}
return runSystemctlUser(p.UnixUser, "restart", p.ServiceName)
return nil
}