Skip to content

Commit 1f5c9bf

Browse files
feat: build job limit (#122)
1 parent 0377226 commit 1f5c9bf

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

cli/cli.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func Build(
132132
defer os.RemoveAll(sourceDir)
133133
recorder := buildlogs.NewRecorder()
134134
gitDownloader := source.NewGitDownloader(sourceDir, recorder)
135-
firmwareBuilder := firmware.NewPodmanBuilder(sourceDir, recorder, runtime.NumCPU()/2, 1024*1024*1024*2)
135+
firmwareBuilder := firmware.NewPodmanBuilder(sourceDir, recorder, runtime.NumCPU(), 1024*1024*1024*2)
136136

137137
err = gitDownloader.Download(ctx, sourceRepository, commitHash)
138138
if err != nil {

firmware/podman_builder.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ type PodmanBuilder struct {
2828
workingDir string
2929
PodmanExecutor PodmanExecutor
3030
CPULimit int // logical cores
31-
MemoryLimit int // bytes
3231
recorder *buildlogs.Recorder
3332
}
3433

@@ -37,7 +36,6 @@ func NewPodmanBuilder(workingDir string, recorder *buildlogs.Recorder, cpuLimit
3736
workingDir: workingDir,
3837
PodmanExecutor: DefaultPodmanExecutor(workingDir),
3938
CPULimit: cpuLimit,
40-
MemoryLimit: memoryLimit,
4139
recorder: recorder,
4240
}
4341
}
@@ -71,6 +69,7 @@ func (builder *PodmanBuilder) buildCmdArgs(
7169
env := []string{
7270
fmt.Sprintf("FLAVOR=%s", target),
7371
fmt.Sprintf("EXTRA_OPTIONS=%s", CmakeFlags(flags)),
72+
fmt.Sprintf("MAX_JOBS=%d", builder.CPULimit),
7473
}
7574
if versionTag == "nightly" {
7675
env = append(env, "EDGETX_VERSION_SUFFIX=nightly")

firmware/podman_builder_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package firmware_test
33
import (
44
"context"
55
"os"
6+
"runtime"
67
"testing"
78
"time"
89

@@ -28,7 +29,7 @@ func TestFirmwareFirmwareBuild(t *testing.T) {
2829
assert.Nil(t, err, "failed to download firmware")
2930
t.Log("will start firmware build")
3031

31-
firmwareBuilder := firmware.NewPodmanBuilder(sourceDir, recorder, 2, 1024*1024*1024)
32+
firmwareBuilder := firmware.NewPodmanBuilder(sourceDir, recorder, runtime.NumCPU(), 1024*1024*1024)
3233
flags := []firmware.BuildFlag{
3334
firmware.NewFlag("DISABLE_COMPANION", "YES"),
3435
firmware.NewFlag("CMAKE_BUILD_TYPE", "Release"),

processor/worker.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package processor
33
import (
44
"context"
55
"os"
6+
"runtime"
67
"time"
78

89
"github.com/edgetx/cloudbuild/artifactory"
@@ -39,7 +40,7 @@ func (worker *Worker) build(
3940

4041
recorder := buildlogs.NewRecorder()
4142
gitDownloader := source.NewGitDownloader(sourceDir, recorder)
42-
firmwareBuilder := firmware.NewPodmanBuilder(sourceDir, recorder, 4, 2*1024*1024*1024)
43+
firmwareBuilder := firmware.NewPodmanBuilder(sourceDir, recorder, runtime.NumCPU(), 2*1024*1024*1024)
4344

4445
return worker.artifactory.Build(
4546
ctx, job, recorder, gitDownloader, firmwareBuilder,
@@ -73,7 +74,7 @@ func (worker *Worker) PullImage(ctx context.Context, buildImage string) error {
7374
We do this so actual build process is faster because of the cached build image
7475
*/
7576
recorder := buildlogs.NewRecorder()
76-
firmwareBuilder := firmware.NewPodmanBuilder("/tmp", recorder, 4, 1024*1024*1024)
77+
firmwareBuilder := firmware.NewPodmanBuilder("/tmp", recorder, runtime.NumCPU(), 1024*1024*1024)
7778
ctx, cancel := context.WithTimeout(ctx, artifactory.MaxBuildDuration)
7879
defer cancel()
7980

0 commit comments

Comments
 (0)