Skip to content

Commit 7bfcd9f

Browse files
authored
Add build optimization flags to Makefile, CI, and e2e test helper (#550)
* Add build optimization flags to Makefile, CI, and e2e test helper
1 parent 0426a50 commit 7bfcd9f

File tree

3 files changed

+25
-9
lines changed

3 files changed

+25
-9
lines changed

.github/workflows/test.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ jobs:
6464

6565
- name: Build pipeleek binary for e2e tests (Windows)
6666
if: runner.os == 'Windows'
67-
run: go build -o pipeleek.exe ./cmd/pipeleek
67+
env:
68+
CGO_ENABLED: 0
69+
run: go build -trimpath -ldflags="-s -w" -o pipeleek.exe ./cmd/pipeleek
6870

6971
- name: Run e2e tests (Linux)
7072
if: runner.os == 'Linux'

Makefile

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,35 +21,38 @@ help:
2121
@echo " make serve-docs - Generate and serve CLI documentation"
2222
@echo " make clean - Remove built artifacts"
2323

24+
# Build flags to reduce binary size (strip symbols, debug info, and file paths)
25+
GO_BUILD_FLAGS = -trimpath -ldflags="-s -w"
26+
2427
# Build the main pipeleek binary
2528
build:
2629
@echo "Building pipeleek..."
27-
CGO_ENABLED=0 go build -o pipeleek ./cmd/pipeleek
30+
CGO_ENABLED=0 go build $(GO_BUILD_FLAGS) -o pipeleek ./cmd/pipeleek
2831

2932
# Build GitLab-specific binary
3033
build-gitlab:
3134
@echo "Building pipeleek-gitlab..."
32-
CGO_ENABLED=0 go build -o pipeleek-gitlab ./cmd/pipeleek-gitlab
35+
CGO_ENABLED=0 go build $(GO_BUILD_FLAGS) -o pipeleek-gitlab ./cmd/pipeleek-gitlab
3336

3437
# Build GitHub-specific binary
3538
build-github:
3639
@echo "Building pipeleek-github..."
37-
CGO_ENABLED=0 go build -o pipeleek-github ./cmd/pipeleek-github
40+
CGO_ENABLED=0 go build $(GO_BUILD_FLAGS) -o pipeleek-github ./cmd/pipeleek-github
3841

3942
# Build BitBucket-specific binary
4043
build-bitbucket:
4144
@echo "Building pipeleek-bitbucket..."
42-
CGO_ENABLED=0 go build -o pipeleek-bitbucket ./cmd/pipeleek-bitbucket
45+
CGO_ENABLED=0 go build $(GO_BUILD_FLAGS) -o pipeleek-bitbucket ./cmd/pipeleek-bitbucket
4346

4447
# Build Azure DevOps-specific binary
4548
build-devops:
4649
@echo "Building pipeleek-devops..."
47-
CGO_ENABLED=0 go build -o pipeleek-devops ./cmd/pipeleek-devops
50+
CGO_ENABLED=0 go build $(GO_BUILD_FLAGS) -o pipeleek-devops ./cmd/pipeleek-devops
4851

4952
# Build Gitea-specific binary
5053
build-gitea:
5154
@echo "Building pipeleek-gitea..."
52-
CGO_ENABLED=0 go build -o pipeleek-gitea ./cmd/pipeleek-gitea
55+
CGO_ENABLED=0 go build $(GO_BUILD_FLAGS) -o pipeleek-gitea ./cmd/pipeleek-gitea
5356

5457
# Build all binaries
5558
build-all: build build-gitlab build-github build-bitbucket build-devops build-gitea

tests/e2e/internal/testutil/testutil.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,20 @@ var (
159159
)
160160

161161
func buildBinary(moduleDir, outputPath string) error {
162-
cmd := exec.Command("go", "build", "-o", outputPath, "./cmd/pipeleek")
162+
cmd := exec.Command("go", "build", "-trimpath", "-ldflags=-s -w", "-o", outputPath, "./cmd/pipeleek")
163163
cmd.Dir = moduleDir
164-
cmd.Env = os.Environ()
164+
165+
// Ensure CGO is disabled so the e2e-built binary matches Makefile/CI builds.
166+
env := os.Environ()
167+
filteredEnv := make([]string, 0, len(env)+1)
168+
for _, kv := range env {
169+
if strings.HasPrefix(kv, "CGO_ENABLED=") {
170+
continue
171+
}
172+
filteredEnv = append(filteredEnv, kv)
173+
}
174+
filteredEnv = append(filteredEnv, "CGO_ENABLED=0")
175+
cmd.Env = filteredEnv
165176
return cmd.Run()
166177
}
167178

0 commit comments

Comments
 (0)