fix provisioning
This commit is contained in:
parent
90dc1bd963
commit
0ffdfb3aef
1 changed files with 30 additions and 1 deletions
|
|
@ -107,7 +107,7 @@ func (a *App) buildProjectBinary(p Project) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
binaryPath := filepath.Join(binDir, "app")
|
binaryPath := filepath.Join(binDir, "app")
|
||||||
if err := runCmd("go", "-C", repoDir, "build", "-o", binaryPath, "."); err != nil {
|
if err := runGoBuildForUser(p.UnixUser, repoDir, binaryPath); err != nil {
|
||||||
return fmt.Errorf("build failed: %w", err)
|
return fmt.Errorf("build failed: %w", err)
|
||||||
}
|
}
|
||||||
if err := ensureOwnedByUnixUser(binaryPath, p.UnixUser, 0o755); err != nil {
|
if err := ensureOwnedByUnixUser(binaryPath, p.UnixUser, 0o755); err != nil {
|
||||||
|
|
@ -156,3 +156,32 @@ func (a *App) repoURLForGitAuth(repoURL string) string {
|
||||||
u.User = url.UserPassword(a.cfg.ForgejoGitUsername, a.cfg.ForgejoToken)
|
u.User = url.UserPassword(a.cfg.ForgejoGitUsername, a.cfg.ForgejoToken)
|
||||||
return u.String()
|
return u.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func runGoBuildForUser(unixUser, repoDir, binaryPath string) error {
|
||||||
|
homeDir, err := homeForUnixUser(unixUser)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
goPath := filepath.Join(homeDir, "go")
|
||||||
|
goModCache := filepath.Join(goPath, "pkg", "mod")
|
||||||
|
goCache := filepath.Join(homeDir, ".cache", "go-build")
|
||||||
|
|
||||||
|
for _, dir := range []string{goPath, goModCache, goCache} {
|
||||||
|
if err := os.MkdirAll(dir, 0o755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := ensureOwnedByUnixUser(dir, unixUser, 0o755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return runCmd(
|
||||||
|
"sudo", "-n", "-u", unixUser,
|
||||||
|
"env",
|
||||||
|
"HOME="+homeDir,
|
||||||
|
"GOPATH="+goPath,
|
||||||
|
"GOMODCACHE="+goModCache,
|
||||||
|
"GOCACHE="+goCache,
|
||||||
|
"go", "-C", repoDir, "build", "-o", binaryPath, ".",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue