Skip to content

Commit 73e6a61

Browse files
fix: use build flags for startup log version (#2551)
1 parent 476cd1c commit 73e6a61

9 files changed

Lines changed: 37 additions & 70 deletions

File tree

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ ENV CGO_LDFLAGS="-L/usr/local/lib -lssl -lcrypto -lreadline -largon2 -lcurl -lon
121121

122122
WORKDIR /go/src/app/caddy/frankenphp
123123
RUN GOBIN=/usr/local/bin \
124-
../../go.sh install -ldflags "-w -s -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
124+
../../go.sh install -ldflags "-w -s -X 'github.com/dunglas/frankenphp.frankenPHPVersion=$FRANKENPHP_VERSION' -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
125125
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
126126
cp Caddyfile /etc/frankenphp/Caddyfile && \
127127
frankenphp version && \

alpine.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ ENV CGO_LDFLAGS="-lssl -lcrypto -lreadline -largon2 -lcurl -lonig -lz $PHP_LDFLA
126126

127127
WORKDIR /go/src/app/caddy/frankenphp
128128
RUN GOBIN=/usr/local/bin \
129-
../../go.sh install -ldflags "-w -s -extldflags '-Wl,-z,stack-size=0x80000' -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
129+
../../go.sh install -ldflags "-w -s -extldflags '-Wl,-z,stack-size=0x80000' -X 'github.com/dunglas/frankenphp.frankenPHPVersion=$FRANKENPHP_VERSION' -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy' -X 'github.com/caddyserver/caddy/v2.CustomBinaryName=frankenphp' -X 'github.com/caddyserver/caddy/v2/modules/caddyhttp.ServerHeader=FrankenPHP Caddy'" -buildvcs=true && \
130130
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
131131
([ -n "${COMPRESS}" ] && upx --best /usr/local/bin/frankenphp || true) && \
132132
frankenphp version && \

caddy/app.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var (
2525
optionsMU sync.RWMutex
2626
)
2727

28-
const appBaseOptionCapacity = 8
28+
const appBaseOptionCapacity = 7
2929

3030
// EXPERIMENTAL: RegisterWorkers provides a way for extensions to register frankenphp.Workers
3131
func RegisterWorkers(name, fileName string, num int, wo ...frankenphp.WorkerOption) frankenphp.Workers {
@@ -180,7 +180,6 @@ func (f *FrankenPHPApp) Start() error {
180180
f.opts = append(f.opts,
181181
frankenphp.WithContext(f.ctx),
182182
frankenphp.WithLogger(f.logger),
183-
frankenphp.WithFrankenPHPVersion(frankenPHPVersionFromCaddyCustomVersion(caddy.CustomVersion)),
184183
frankenphp.WithNumThreads(f.NumThreads),
185184
frankenphp.WithMaxThreads(f.MaxThreads),
186185
frankenphp.WithMetrics(f.metrics),

caddy/version.go

Lines changed: 0 additions & 19 deletions
This file was deleted.

caddy/version_test.go

Lines changed: 0 additions & 22 deletions
This file was deleted.

frankenphp.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ func Init(options ...Option) error {
342342
initAutoScaling(mainThread)
343343

344344
if globalLogger.Enabled(globalCtx, slog.LevelInfo) {
345-
globalLogger.LogAttrs(globalCtx, slog.LevelInfo, startupLogMessage, startupLogAttrs(opt.frankenPHPVersion, Version().Version, mainThread.numThreads, mainThread.maxThreads, maxRequestsPerThread)...)
345+
globalLogger.LogAttrs(globalCtx, slog.LevelInfo, startupLogMessage, startupLogAttrs(Version().Version, mainThread.numThreads, mainThread.maxThreads, maxRequestsPerThread)...)
346346

347347
if EmbeddedAppPath != "" {
348348
globalLogger.LogAttrs(globalCtx, slog.LevelInfo, "embedded PHP app 📦", slog.String("path", EmbeddedAppPath))

options.go

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,16 @@ type WorkerOption func(*workerOpt) error
2222
type opt struct {
2323
hotReloadOpt
2424

25-
ctx context.Context
26-
numThreads int
27-
maxThreads int
28-
workers []workerOpt
29-
logger *slog.Logger
30-
frankenPHPVersion string
31-
metrics Metrics
32-
phpIni map[string]string
33-
maxWaitTime time.Duration
34-
maxIdleTime time.Duration
35-
maxRequests int
25+
ctx context.Context
26+
numThreads int
27+
maxThreads int
28+
workers []workerOpt
29+
logger *slog.Logger
30+
metrics Metrics
31+
phpIni map[string]string
32+
maxWaitTime time.Duration
33+
maxIdleTime time.Duration
34+
maxRequests int
3635
}
3736

3837
type workerOpt struct {
@@ -142,15 +141,6 @@ func WithLogger(l *slog.Logger) Option {
142141
}
143142
}
144143

145-
// WithFrankenPHPVersion configures the FrankenPHP version exposed in startup logs.
146-
func WithFrankenPHPVersion(version string) Option {
147-
return func(o *opt) error {
148-
o.frankenPHPVersion = version
149-
150-
return nil
151-
}
152-
}
153-
154144
// WithPhpIni configures user defined PHP ini settings.
155145
func WithPhpIni(overrides map[string]string) Option {
156146
return func(o *opt) error {

startup_log.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ const (
1212
startupLogAttrCapacity = 5
1313
)
1414

15-
func startupLogAttrs(frankenPHPVersion string, phpVersion string, numThreads int, maxThreads int, maxRequests int) []slog.Attr {
15+
var frankenPHPVersion string
16+
17+
func startupLogAttrs(phpVersion string, numThreads int, maxThreads int, maxRequests int) []slog.Attr {
1618
attrs := make([]slog.Attr, 0, startupLogAttrCapacity)
1719
if frankenPHPVersion != "" {
1820
attrs = append(attrs, slog.String(startupLogAttrVersion, frankenPHPVersion))

startup_log_test.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package frankenphp
22

3-
import "testing"
3+
import (
4+
"os"
5+
"testing"
6+
)
47

5-
func TestStartupLogAttrsIncludeConfiguredFrankenPHPVersion(t *testing.T) {
8+
const startupLogTestExpectedBuildFlagVersionEnv = "FRANKENPHP_EXPECT_LDFLAG_VERSION"
9+
10+
func TestStartupLogAttrsIncludeBuildFlagFrankenPHPVersion(t *testing.T) {
611
const (
712
expectedFrankenPHPVersion = "1.12.4-test"
813
testPHPVersion = "8.2.31"
@@ -11,7 +16,19 @@ func TestStartupLogAttrsIncludeConfiguredFrankenPHPVersion(t *testing.T) {
1116
testMaxRequests = 0
1217
)
1318

14-
attrs := startupLogAttrs(expectedFrankenPHPVersion, testPHPVersion, testNumThreads, testMaxThreads, testMaxRequests)
19+
if expectedBuildFlagVersion := os.Getenv(startupLogTestExpectedBuildFlagVersionEnv); expectedBuildFlagVersion != "" {
20+
if frankenPHPVersion != expectedBuildFlagVersion {
21+
t.Fatalf("expected FrankenPHP version %q from build flags, got %q", expectedBuildFlagVersion, frankenPHPVersion)
22+
}
23+
} else {
24+
previousFrankenPHPVersion := frankenPHPVersion
25+
frankenPHPVersion = expectedFrankenPHPVersion
26+
defer func() {
27+
frankenPHPVersion = previousFrankenPHPVersion
28+
}()
29+
}
30+
31+
attrs := startupLogAttrs(testPHPVersion, testNumThreads, testMaxThreads, testMaxRequests)
1532
if len(attrs) == 0 {
1633
t.Fatal("expected startup log attrs")
1734
}

0 commit comments

Comments
 (0)