From 2532eb5887eca133097432dbbf64d27691738573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= Date: Tue, 22 Oct 2024 22:50:31 +0200 Subject: [PATCH] chore: compile without nosql's support for Postgres and MySQL (#1112) --- .github/workflows/docker.yaml | 2 +- .github/workflows/tests.yaml | 2 +- CONTRIBUTING.md | 2 +- Dockerfile | 2 +- alpine.Dockerfile | 2 +- build-static.sh | 2 +- dev.Dockerfile | 2 +- docs/compile.md | 7 +++++-- go.mod | 4 ++-- go.sum | 8 ++++---- 10 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 61f9929a..f82c7f5a 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -213,7 +213,7 @@ jobs: run: | docker run --platform=${{ matrix.platform }} --rm \ "$(jq -r '."builder-${{ matrix.variant }}"."containerimage.config.digest"' <<< "${METADATA}")" \ - sh -c 'go test -tags watcher ${{ matrix.race }} -v ./... && cd caddy && go test -tags watcher ${{ matrix.race }} -v ./...' + sh -c 'go test -tags watcher ${{ matrix.race }} -v ./... && cd caddy && go test -tags watcher,brotli,nobadger,nomysql,nopgx ${{ matrix.race }} -v ./...' env: METADATA: ${{ steps.build.outputs.metadata }} # Adapted from https://docs.docker.com/build/ci/github-actions/multi-platform/ diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 94e93d71..dcb17910 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -75,7 +75,7 @@ jobs: - name: Run Caddy module tests working-directory: caddy/ - run: go test -tags watcher -race -v ./... + run: go test -tags watcher,brotli,nobadger,nomysql,nopgx -race -v ./... - name: Build the server working-directory: caddy/frankenphp/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fead355c..b36ae3a8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,7 +38,7 @@ Build Caddy with the FrankenPHP Caddy module: ```console cd caddy/frankenphp/ -go build +go build -tags watcher,brotli,nobadger,nomysql,nopgx cd ../../ ``` diff --git a/Dockerfile b/Dockerfile index 4972c0a2..c21d4324 100644 --- a/Dockerfile +++ b/Dockerfile @@ -104,7 +104,7 @@ ENV CGO_CPPFLAGS=$PHP_CPPFLAGS ENV CGO_LDFLAGS="-lssl -lcrypto -lreadline -largon2 -lcurl -lonig -lz $PHP_LDFLAGS" WORKDIR /go/src/app/caddy/frankenphp -RUN GOBIN=/usr/local/bin go install -tags 'brotli watcher' -ldflags "-w -s -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy'" && \ +RUN GOBIN=/usr/local/bin go install -tags 'brotli,watcher,nobadger,nomysql,nopgx' -ldflags "-w -s -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy'" && \ setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \ cp Caddyfile /etc/caddy/Caddyfile && \ frankenphp version diff --git a/alpine.Dockerfile b/alpine.Dockerfile index 990a688b..fefdef09 100644 --- a/alpine.Dockerfile +++ b/alpine.Dockerfile @@ -125,7 +125,7 @@ ENV CGO_CPPFLAGS=$PHP_CPPFLAGS ENV CGO_LDFLAGS="-lssl -lcrypto -lreadline -largon2 -lcurl -lonig -lz $PHP_LDFLAGS" WORKDIR /go/src/app/caddy/frankenphp -RUN GOBIN=/usr/local/bin go install -tags 'brotli watcher' -ldflags "-w -s -extldflags '-Wl,-z,stack-size=0x80000' -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy'" && \ +RUN GOBIN=/usr/local/bin go install -tags 'brotli,watcher,nobadger,nomysql,nopgx' -ldflags "-w -s -extldflags '-Wl,-z,stack-size=0x80000' -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy'" && \ setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \ upx --best /usr/local/bin/frankenphp && \ frankenphp version diff --git a/build-static.sh b/build-static.sh index b3e77122..8ba17318 100755 --- a/build-static.sh +++ b/build-static.sh @@ -249,7 +249,7 @@ fi cd caddy/frankenphp/ go env -go build -buildmode=pie -tags "cgo netgo osusergo static_build brotli watcher" -ldflags "-linkmode=external -extldflags '-static-pie ${extraExtldflags}' ${extraLdflags} -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ${FRANKENPHP_VERSION} PHP ${LIBPHP_VERSION} Caddy'" -o "../../dist/${bin}" +go build -buildmode=pie -tags "cgo,netgo,osusergo,static_build,brotli,watcher,nobadger,nomysql,nopgx" -ldflags "-linkmode=external -extldflags '-static-pie ${extraExtldflags}' ${extraLdflags} -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP ${FRANKENPHP_VERSION} PHP ${LIBPHP_VERSION} Caddy'" -o "../../dist/${bin}" cd ../.. if [ -d "${EMBED}" ]; then diff --git a/dev.Dockerfile b/dev.Dockerfile index 76a1a89b..56468612 100644 --- a/dev.Dockerfile +++ b/dev.Dockerfile @@ -78,7 +78,7 @@ WORKDIR /go/src/app COPY . . WORKDIR /go/src/app/caddy/frankenphp -RUN go build -buildvcs=false -tags 'brotli watcher' +RUN go build -buildvcs=false -tags 'brotli,watcher,nobadger,nomysql,nopgx' WORKDIR /go/src/app CMD [ "zsh" ] diff --git a/docs/compile.md b/docs/compile.md index 68be5392..60848089 100644 --- a/docs/compile.md +++ b/docs/compile.md @@ -109,11 +109,14 @@ passing additional build tags to the Go compiler: When using `go build` directly, pass the additional `-tags` option followed by the comma-separated list of tags: ```console -go build -tags 'brotli watcher' +go build -tags 'nobadger,nomysql,nopgx,brotli,watcher' ``` +> [!NOTE] +> You should always pass the `nobadger,nomysql,nopgx` tags to disable unused features of the SmallStep nosql dependency. + When using `xcaddy`, set the `-tags` option in the `XCADDY_GO_BUILD_FLAGS` environment variable: ```console -XCADDY_GO_BUILD_FLAGS="-tags 'brotli watcher'" +XCADDY_GO_BUILD_FLAGS="-tags 'brotli,watcher'" ``` diff --git a/go.mod b/go.mod index 51b0ea24..5f44f77e 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/prometheus/client_golang v1.20.5 github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.27.0 - golang.org/x/net v0.29.0 + golang.org/x/net v0.30.0 ) require ( @@ -26,7 +26,7 @@ require ( github.com/rogpeppe/go-internal v1.12.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.18.0 // indirect + golang.org/x/text v0.19.0 // indirect google.golang.org/protobuf v1.35.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 3eba5726..c1a6f45b 100644 --- a/go.sum +++ b/go.sum @@ -40,12 +40,12 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=