diff --git a/docker-compose.yml b/docker-compose.yml index 55957eb..df5297a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,6 +37,8 @@ services: server: image: ubuntu:22.04 container_name: server + environment: + - MRVA_SERVER_ROOT=/mrva/mrvacommander/cmd/server command: sh -c "apt-get update && apt-get install -y curl && tail -f /dev/null" ports: - "8080:8080" diff --git a/pkg/agent/agent.go b/pkg/agent/agent.go index ef4dadd..3a62fbe 100644 --- a/pkg/agent/agent.go +++ b/pkg/agent/agent.go @@ -82,21 +82,20 @@ func (r *RunnerSingle) RunAnalysis(job common.AnalyzeJob) (string, error) { queryPackID, dbOwner, dbRepo := job.QueryPackId, job.ORepo.Owner, job.ORepo.Repo - // FIXME Provide this via environment or explicit argument - gmsRoot := "/Users/hohn/work-gh/mrva/mrvacommander/cmd/server" + serverRoot := os.Getenv("MRVA_SERVER_ROOT") // Set up derived paths - dbPath := filepath.Join(gmsRoot, "var/codeql/dbs", dbOwner, dbRepo) - dbZip := filepath.Join(gmsRoot, "codeql/dbs", dbOwner, dbRepo, + dbPath := filepath.Join(serverRoot, "var/codeql/dbs", dbOwner, dbRepo) + dbZip := filepath.Join(serverRoot, "codeql/dbs", dbOwner, dbRepo, fmt.Sprintf("%s_%s_db.zip", dbOwner, dbRepo)) - dbExtract := filepath.Join(gmsRoot, "var/codeql/dbs", dbOwner, dbRepo) + dbExtract := filepath.Join(serverRoot, "var/codeql/dbs", dbOwner, dbRepo) - queryPack := filepath.Join(gmsRoot, + queryPack := filepath.Join(serverRoot, "var/codeql/querypacks", fmt.Sprintf("qp-%d.tgz", queryPackID)) - queryExtract := filepath.Join(gmsRoot, + queryExtract := filepath.Join(serverRoot, "var/codeql/querypacks", fmt.Sprintf("qp-%d", queryPackID)) - queryOutDir := filepath.Join(gmsRoot, + queryOutDir := filepath.Join(serverRoot, "var/codeql/sarif/localrun", dbOwner, dbRepo) queryOutFile := filepath.Join(queryOutDir, fmt.Sprintf("%s_%s.sarif", dbOwner, dbRepo)) @@ -108,7 +107,7 @@ func (r *RunnerSingle) RunAnalysis(job common.AnalyzeJob) (string, error) { } if err := unzipFile(dbZip, dbExtract); err != nil { - slog.Error("Failed to unzip DB %s: %v", dbZip, err) + slog.Error("Failed to unzip DB", dbZip, err) return "", err } @@ -133,7 +132,7 @@ func (r *RunnerSingle) RunAnalysis(job common.AnalyzeJob) (string, error) { cmd := exec.Command("codeql", "database", "analyze", "--format=sarif-latest", "--rerun", "--output", queryOutFile, "-j8", dbPath, queryExtract) - cmd.Dir = gmsRoot + cmd.Dir = serverRoot cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr