mirror of
https://github.com/dunglas/frankenphp.git
synced 2025-09-26 19:41:13 +08:00
ci: include version in BuildInfo and Prometheus metrics (#1418)
This commit is contained in:
@@ -1,14 +1,11 @@
|
|||||||
# ignored
|
/caddy/frankenphp/frankenphp
|
||||||
**/*
|
/internal/testserver/testserver
|
||||||
|
/internal/testcli/testcli
|
||||||
# authorized
|
/dist
|
||||||
!**/Caddyfile
|
.DS_Store
|
||||||
!**/*.go
|
.idea/
|
||||||
!**/go.*
|
.vscode/
|
||||||
!**/*.c
|
__debug_bin
|
||||||
!**/*.h
|
frankenphp.test
|
||||||
!testdata/*.php
|
caddy/frankenphp/Build
|
||||||
!testdata/*.txt
|
*.log
|
||||||
!build-static.sh
|
|
||||||
!app.tar
|
|
||||||
!app_checksum.txt
|
|
||||||
|
2
.github/workflows/static.yaml
vendored
2
.github/workflows/static.yaml
vendored
@@ -168,6 +168,7 @@ jobs:
|
|||||||
- name: Run sanity checks
|
- name: Run sanity checks
|
||||||
run: |
|
run: |
|
||||||
"${BINARY}" version
|
"${BINARY}" version
|
||||||
|
"${BINARY}" build-info
|
||||||
"${BINARY}" list-modules | grep frankenphp
|
"${BINARY}" list-modules | grep frankenphp
|
||||||
"${BINARY}" list-modules | grep http.encoders.br
|
"${BINARY}" list-modules | grep http.encoders.br
|
||||||
"${BINARY}" list-modules | grep http.handlers.mercure
|
"${BINARY}" list-modules | grep http.handlers.mercure
|
||||||
@@ -262,6 +263,7 @@ jobs:
|
|||||||
- name: Run sanity checks
|
- name: Run sanity checks
|
||||||
run: |
|
run: |
|
||||||
"${BINARY}" version
|
"${BINARY}" version
|
||||||
|
"${BINARY}" build-info
|
||||||
"${BINARY}" list-modules | grep frankenphp
|
"${BINARY}" list-modules | grep frankenphp
|
||||||
"${BINARY}" list-modules | grep http.encoders.br
|
"${BINARY}" list-modules | grep http.encoders.br
|
||||||
"${BINARY}" list-modules | grep http.handlers.mercure
|
"${BINARY}" list-modules | grep http.handlers.mercure
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -2,7 +2,10 @@
|
|||||||
/internal/testserver/testserver
|
/internal/testserver/testserver
|
||||||
/internal/testcli/testcli
|
/internal/testcli/testcli
|
||||||
/dist
|
/dist
|
||||||
|
.DS_Store
|
||||||
.idea/
|
.idea/
|
||||||
.vscode/
|
.vscode/
|
||||||
__debug_bin
|
__debug_bin
|
||||||
frankenphp.test
|
frankenphp.test
|
||||||
|
caddy/frankenphp/Build
|
||||||
|
*.log
|
||||||
|
38
Dockerfile
38
Dockerfile
@@ -61,7 +61,8 @@ ENV PATH=/usr/local/go/bin:$PATH
|
|||||||
# This is required to link the FrankenPHP binary to the PHP binary
|
# This is required to link the FrankenPHP binary to the PHP binary
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
apt-get -y --no-install-recommends install \
|
apt-get -y --no-install-recommends install \
|
||||||
cmake \
|
cmake \
|
||||||
|
git \
|
||||||
libargon2-dev \
|
libargon2-dev \
|
||||||
libbrotli-dev \
|
libbrotli-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
@@ -75,21 +76,6 @@ RUN apt-get update && \
|
|||||||
&& \
|
&& \
|
||||||
apt-get clean
|
apt-get clean
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
|
||||||
|
|
||||||
COPY --link go.mod go.sum ./
|
|
||||||
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
|
||||||
|
|
||||||
WORKDIR /go/src/app/caddy
|
|
||||||
COPY --link caddy/go.mod caddy/go.sum ./
|
|
||||||
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
|
||||||
COPY --link *.* ./
|
|
||||||
COPY --link caddy caddy
|
|
||||||
COPY --link internal internal
|
|
||||||
COPY --link testdata testdata
|
|
||||||
|
|
||||||
# Install e-dant/watcher (necessary for file watching)
|
# Install e-dant/watcher (necessary for file watching)
|
||||||
WORKDIR /usr/local/src/watcher
|
WORKDIR /usr/local/src/watcher
|
||||||
RUN curl -s https://api.github.com/repos/e-dant/watcher/releases/latest | \
|
RUN curl -s https://api.github.com/repos/e-dant/watcher/releases/latest | \
|
||||||
@@ -104,6 +90,18 @@ RUN curl -s https://api.github.com/repos/e-dant/watcher/releases/latest | \
|
|||||||
cmake --install build && \
|
cmake --install build && \
|
||||||
ldconfig
|
ldconfig
|
||||||
|
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
|
COPY --link go.mod go.sum ./
|
||||||
|
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
||||||
|
|
||||||
|
WORKDIR /go/src/app/caddy
|
||||||
|
COPY --link caddy/go.mod caddy/go.sum ./
|
||||||
|
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
||||||
|
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
COPY --link . ./
|
||||||
|
|
||||||
# See https://github.com/docker-library/php/blob/master/8.3/bookworm/zts/Dockerfile#L57-L59 for PHP values
|
# See https://github.com/docker-library/php/blob/master/8.3/bookworm/zts/Dockerfile#L57-L59 for PHP values
|
||||||
ENV CGO_CFLAGS="-DFRANKENPHP_VERSION=$FRANKENPHP_VERSION $PHP_CFLAGS"
|
ENV CGO_CFLAGS="-DFRANKENPHP_VERSION=$FRANKENPHP_VERSION $PHP_CFLAGS"
|
||||||
ENV CGO_CPPFLAGS=$PHP_CPPFLAGS
|
ENV CGO_CPPFLAGS=$PHP_CPPFLAGS
|
||||||
@@ -112,10 +110,11 @@ ENV CGO_LDFLAGS="-L/usr/local/lib -lssl -lcrypto -lreadline -largon2 -lcurl -lon
|
|||||||
RUN echo $CGO_LDFLAGS
|
RUN echo $CGO_LDFLAGS
|
||||||
|
|
||||||
WORKDIR /go/src/app/caddy/frankenphp
|
WORKDIR /go/src/app/caddy/frankenphp
|
||||||
RUN GOBIN=/usr/local/bin go install -tags 'nobadger,nomysql,nopgx' -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 'nobadger,nomysql,nopgx' -ldflags "-w -s -X 'github.com/caddyserver/caddy/v2.CustomVersion=FrankenPHP $FRANKENPHP_VERSION PHP $PHP_VERSION Caddy'" -buildvcs=true && \
|
||||||
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
||||||
cp Caddyfile /etc/caddy/Caddyfile && \
|
cp Caddyfile /etc/caddy/Caddyfile && \
|
||||||
frankenphp version
|
frankenphp version && \
|
||||||
|
frankenphp build-info
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
@@ -133,4 +132,5 @@ RUN apt-get install -y --no-install-recommends libstdc++6 && \
|
|||||||
|
|
||||||
COPY --from=builder /usr/local/bin/frankenphp /usr/local/bin/frankenphp
|
COPY --from=builder /usr/local/bin/frankenphp /usr/local/bin/frankenphp
|
||||||
RUN setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
RUN setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
||||||
frankenphp version
|
frankenphp version && \
|
||||||
|
frankenphp build-info
|
||||||
|
@@ -82,21 +82,6 @@ RUN apk add --no-cache --virtual .build-deps \
|
|||||||
sqlite-dev \
|
sqlite-dev \
|
||||||
upx
|
upx
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
|
||||||
|
|
||||||
COPY --link go.mod go.sum ./
|
|
||||||
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
|
||||||
|
|
||||||
WORKDIR /go/src/app/caddy
|
|
||||||
COPY caddy/go.mod caddy/go.sum ./
|
|
||||||
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
|
||||||
COPY --link *.* ./
|
|
||||||
COPY --link caddy caddy
|
|
||||||
COPY --link internal internal
|
|
||||||
COPY --link testdata testdata
|
|
||||||
|
|
||||||
# Install e-dant/watcher (necessary for file watching)
|
# Install e-dant/watcher (necessary for file watching)
|
||||||
WORKDIR /usr/local/src/watcher
|
WORKDIR /usr/local/src/watcher
|
||||||
RUN curl -s https://api.github.com/repos/e-dant/watcher/releases/latest | \
|
RUN curl -s https://api.github.com/repos/e-dant/watcher/releases/latest | \
|
||||||
@@ -110,16 +95,29 @@ RUN curl -s https://api.github.com/repos/e-dant/watcher/releases/latest | \
|
|||||||
cmake --build build && \
|
cmake --build build && \
|
||||||
cmake --install build
|
cmake --install build
|
||||||
|
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
|
COPY --link go.mod go.sum ./
|
||||||
|
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
||||||
|
|
||||||
|
WORKDIR /go/src/app/caddy
|
||||||
|
COPY caddy/go.mod caddy/go.sum ./
|
||||||
|
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
||||||
|
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
COPY --link . ./
|
||||||
|
|
||||||
# See https://github.com/docker-library/php/blob/master/8.3/alpine3.20/zts/Dockerfile#L53-L55
|
# See https://github.com/docker-library/php/blob/master/8.3/alpine3.20/zts/Dockerfile#L53-L55
|
||||||
ENV CGO_CFLAGS="-DFRANKENPHP_VERSION=$FRANKENPHP_VERSION $PHP_CFLAGS"
|
ENV CGO_CFLAGS="-DFRANKENPHP_VERSION=$FRANKENPHP_VERSION $PHP_CFLAGS"
|
||||||
ENV CGO_CPPFLAGS=$PHP_CPPFLAGS
|
ENV CGO_CPPFLAGS=$PHP_CPPFLAGS
|
||||||
ENV CGO_LDFLAGS="-lssl -lcrypto -lreadline -largon2 -lcurl -lonig -lz $PHP_LDFLAGS"
|
ENV CGO_LDFLAGS="-lssl -lcrypto -lreadline -largon2 -lcurl -lonig -lz $PHP_LDFLAGS"
|
||||||
|
|
||||||
WORKDIR /go/src/app/caddy/frankenphp
|
WORKDIR /go/src/app/caddy/frankenphp
|
||||||
RUN GOBIN=/usr/local/bin go install -tags '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'" && \
|
RUN GOBIN=/usr/local/bin go install -tags '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'" -buildvcs=true && \
|
||||||
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
||||||
([ -z "${NO_COMPRESS}" ] && upx --best /usr/local/bin/frankenphp || true) && \
|
([ -z "${NO_COMPRESS}" ] && upx --best /usr/local/bin/frankenphp || true) && \
|
||||||
frankenphp version
|
frankenphp version && \
|
||||||
|
frankenphp build-info
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
@@ -135,4 +133,5 @@ RUN apk add --no-cache libstdc++ && \
|
|||||||
|
|
||||||
COPY --from=builder /usr/local/bin/frankenphp /usr/local/bin/frankenphp
|
COPY --from=builder /usr/local/bin/frankenphp /usr/local/bin/frankenphp
|
||||||
RUN setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
RUN setcap cap_net_bind_service=+ep /usr/local/bin/frankenphp && \
|
||||||
frankenphp version
|
frankenphp version && \
|
||||||
|
frankenphp build-info
|
||||||
|
@@ -323,6 +323,7 @@ if type "upx" >/dev/null 2>&1 && [ -z "${DEBUG_SYMBOLS}" ] && [ -z "${NO_COMPRES
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
"dist/${bin}" version
|
"dist/${bin}" version
|
||||||
|
"dist/${bin}" build-info
|
||||||
|
|
||||||
if [ -n "${RELEASE}" ]; then
|
if [ -n "${RELEASE}" ]; then
|
||||||
gh release upload "v${FRANKENPHP_VERSION}" "dist/${bin}" --repo dunglas/frankenphp --clobber
|
gh release upload "v${FRANKENPHP_VERSION}" "dist/${bin}" --repo dunglas/frankenphp --clobber
|
||||||
|
@@ -88,9 +88,7 @@ COPY caddy/go.mod caddy/go.sum ./
|
|||||||
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
RUN go mod graph | awk '{if ($1 !~ "@") print $2}' | xargs go get
|
||||||
|
|
||||||
WORKDIR /go/src/app
|
WORKDIR /go/src/app
|
||||||
COPY --link *.* ./
|
COPY --link . ./
|
||||||
COPY --link caddy caddy
|
|
||||||
COPY --link internal internal
|
|
||||||
|
|
||||||
RUN --mount=type=secret,id=github-token GITHUB_TOKEN=$(cat /run/secrets/github-token) ./build-static.sh && \
|
RUN --mount=type=secret,id=github-token GITHUB_TOKEN=$(cat /run/secrets/github-token) ./build-static.sh && \
|
||||||
rm -Rf dist/static-php-cli/source/*
|
rm -Rf dist/static-php-cli/source/*
|
||||||
|
Reference in New Issue
Block a user