Kévin Dunglas
6f049f9a9c
ci: minor cleanup ( #1619 )
...
* ci: minor cleanup
* add .golangci.yaml
2025-05-31 08:01:38 +02:00
Kévin Dunglas
b6fcab5a95
ci: always login to Docker if not a Pull Request ( #1599 )
2025-05-23 00:53:03 +02:00
Kévin Dunglas
9a8ad979e0
ci: don't login to the Docker hub for PRs
2025-05-21 01:18:33 +02:00
dependabot[bot]
25491068df
ci: bump super-linter/super-linter in the github-actions group
...
Bumps the github-actions group with 1 update: [super-linter/super-linter](https://github.com/super-linter/super-linter ).
Updates `super-linter/super-linter` from 7.3.0 to 7.4.0
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v7.3.0...v7.4.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-version: 7.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-05-19 13:49:56 +02:00
Kévin Dunglas
d72751b9fd
ci: always login to the Docker Hub to mitigate rate limiting issues
2025-05-19 13:46:55 +02:00
Marc
bbbfdb31b5
ci: build .rpm and .deb packages ( #1497 )
...
* add ./create-rpm.sh file to build a "frankenphp" rpm package
* also build a deb package
* renamed to build-packages
* linter...
* add depends
* linter again?
* linter number 3
* linter number 4
* set default locations for ini file, conf files and extensions
* set unified path for modules that should be ok on all dists
* add default content into "package" folder
* make file executable
* worker is in public folder
* what on earth did I do x)
* use same FRANKENPHP_VERSION and make sure to let pr's run the rpm generation too (version 0.0.0) to see issues
* install ruby, fpm and rpm-build
* move to after changing base urls because it would fail with packages not found
* ruby 3 build needs gcc 10
* rpm-build is necessary too...
* and I forgot to link the package folder
* create directories if they don't exist
* copy out all frankenphp* files?
* lint fix
* only copy frankenphp-* files
* only copy frankenphp-* files
* the .deb file is name frankenphp_1.5.0... - create output folder instead and upload all things inside that
will simplify things when later adding xdebug.so and ffi.so
* update the last two steps to use the gh-output directory
* add post install script to set frankenphp able to bind to port 80 for non-root users
* dnf over yum, I think the yum alias was removed in RH 9.5
* newlines
* newlines
* add text what missing libcap means
* copy php.ini-production from php-src, linter, update ruby version
* move Caddyfile to /etc/frankenphp/Caddyfile
* linter
* fix a copy and paste error
* better describe fallback to 0.0.0
* linter
* copy installation scripts from official caddy packages, change user to frankenphp too
* bombombom
* make files executable
* tabs
* linter
* linter again
* use empty directory for three different destinations instead of keeping three empty local directories
* caddy says the file is incorrectly formatted without these spaces
* remove wildcard matcher from root directive
* Apply suggestions from code review
commit suggested changes to preinstall/postinstall scripts
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* remove misleading comment
* update documentation for paths
* update documentation for paths some more
* fix musl opcache-jit issue
* markdown linter
* the damn tab
* Apply suggestions from code review
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* drop dev.Dockerfile php location from config.md
* add php config note to CONTRIBUTING.md
* dashes instead of asterisks in chinese docs
* fix package building
* create frankenphp user in case it doesn't exist for deb packages
* create users if they don't exist, delete them again if they didn't exist
* satisfy linter
* create the user with the same commands as the postinst/preinstall scripts
* Removes toolchain requirements.
* trigger
* Removes explicit calls to go get
* trigger
* setcap by default
* simplify example project
* bring page more in line with the caddy / apache / nginx default page
* update to html 5
* oopsies
* revert style to original
* remove https:// (caddy uses http:// on RHEL, :80 on Debian)
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-05-14 07:33:05 +02:00
Kévin Dunglas
0d12a5162d
fix: use local Go toolchain ( #1546 )
2025-05-11 22:30:19 +02:00
dependabot[bot]
8f5f9e4c8b
ci: bump golangci/golangci-lint-action in the github-actions group
...
Bumps the github-actions group with 1 update: [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action ).
Updates `golangci/golangci-lint-action` from 7 to 8
- [Release notes](https://github.com/golangci/golangci-lint-action/releases )
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v7...v8 )
---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-05-05 14:28:35 +02:00
Alexander Stecher
3741782330
feat: '-r' option for php-cli ( #1482 )
2025-05-01 02:06:31 +02:00
Kévin Dunglas
6f1b4f3bae
ci: fix GNU manifest ( #1535 )
2025-04-30 14:52:40 +02:00
Kévin Dunglas
d10a243f86
ci: fix GNU manifest ( #1534 )
2025-04-29 01:07:37 +02:00
Kévin Dunglas
4ad5e870ec
ci: fix static GNU binary copy ( #1528 )
2025-04-26 11:03:36 +02:00
Kévin Dunglas
8092f4a35c
chore!: update to golangci-lint-action 7 ( #1508 )
2025-04-17 20:33:22 +02:00
Pierre du Plessis
ba36f92a35
fix: remove extra -gnu suffic in static build images ( #1472 )
2025-04-01 08:33:09 +02:00
Jerry Ma
3bc426482a
feat: add glibc-based static binary ( #1438 )
...
* Add gnu static binary build support
* Remove --libc option
* configure ./build-static.sh to allow extension loading with glibc
* use tabs everywhere
* do not use prebuilt sources for glibc build
* ffi does not work with musl builds
* remove unnecessary tabs
* disable opcache jit on musl
* disable opcache jit on musl again
* err, build command, not download command
* cs fixes
* spellcheck
* even more cs fixes
* fix ar removing .a libs
* disable ffi extension for now
* add gnu static action
* add gnu-static target
* skip CHECKOV 2 and 3
* rename static-builder to static-builder-musl, gnu-static to static-builder-gnu
run arm64 gnu job on ubuntu-arm
* rename build-linux to build-linux-musl
* rename job description to specify musl
* higher optimisation flags
* Update docker-bake.hcl
---------
Co-authored-by: DubbleClick <m@pyc.ac >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2025-03-22 11:41:47 +01:00
Kévin Dunglas
341b0240c9
ci: include version in BuildInfo and Prometheus metrics ( #1418 )
2025-03-19 13:27:28 +01:00
Kévin Dunglas
424ca426cb
fix: timeouts handling on macOS ( #1435 )
...
* ci: run tests on macOS
* debug
* debug
* fix
* nobrotli
* install brotli
* fix
* fix
* Also registers php.ini if ZEND_MAX_EXECUTION_TIMERS is disabled.
* Removes max_execution_time from tests (it gets overwritten on mac)
* tiny refacto
* fix free
* cs
---------
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2025-03-11 17:34:49 +01:00
dependabot[bot]
3dd90a3071
ci: bump super-linter/super-linter from 7.2.1 to 7.3.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 7.2.1 to 7.3.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v7.2.1...v7.3.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-03-03 23:22:37 +01:00
Kévin Dunglas
f61bc180c4
chore: upgrade to Go 1.24
2025-02-18 07:33:36 +01:00
dependabot[bot]
5342d34126
ci: bump docker/bake-action from 5 to 6
...
Bumps [docker/bake-action](https://github.com/docker/bake-action ) from 5 to 6.
- [Release notes](https://github.com/docker/bake-action/releases )
- [Commits](https://github.com/docker/bake-action/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: docker/bake-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-01-27 23:07:00 +01:00
Kévin Dunglas
92e6b48156
ci: use the new ARM runners for ARM builds ( #1333 )
2025-01-17 19:12:31 +01:00
Kévin Dunglas
7aaea72f14
ci: fix linter
2024-12-22 12:30:43 +01:00
Kévin Dunglas
028bad3e54
ci: try to fix static binary copy
2024-12-22 02:29:25 +01:00
Kévin Dunglas
07622be221
ci: try to fix static binary copy
2024-12-21 19:31:01 +01:00
Kévin Dunglas
d8f393900b
fix(static): add back the cbrotli Caddy module ( #1280 )
2024-12-21 19:06:14 +01:00
Kévin Dunglas
43984c3990
ci: try to fix static binary copy
2024-12-21 12:55:09 +01:00
Kévin Dunglas
e874ea8710
ci: always upload release binary ( #1277 )
2024-12-21 02:38:29 +01:00
Vincent Amstoutz
f288c3688e
ci: bump super-linter from 6.8 to 7.2.1 and fix codebase ( #1260 )
2024-12-20 15:38:13 +01:00
Vincent Amstoutz
57bc54864e
ci: update static artifact actions to v4 ( #1264 )
2024-12-20 10:56:44 +01:00
Kévin Dunglas
b16b60b053
ci: fix artifact upload
2024-12-18 22:08:21 +01:00
Vincent Amstoutz
85c273543d
ci: update artifact actions to v4 ( #1255 )
2024-12-18 18:03:10 +01:00
dependabot[bot]
61922473ac
ci: bump actions/attest-build-provenance from 1 to 2 ( #1234 )
...
Bumps [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance ) from 1 to 2.
- [Release notes](https://github.com/actions/attest-build-provenance/releases )
- [Changelog](https://github.com/actions/attest-build-provenance/blob/main/RELEASE.md )
- [Commits](https://github.com/actions/attest-build-provenance/compare/v1...v2 )
---
updated-dependencies:
- dependency-name: actions/attest-build-provenance
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 14:57:27 +01:00
Kévin Dunglas
449a0e7191
ci: build PHP 8.4 Docker images ( #1183 )
...
* ci: add PHP 8.4 to the CD pipeline
* fix: revert to 8.3 for Static PHP CLI
* fix
2024-11-22 18:17:12 +01:00
Alexander Stecher
e5ca97308e
perf: optimize $_SERVER import ( #1106 )
...
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
Co-authored-by: a.stecher <a.stecher@sportradar.com >
Co-authored-by: Alliballibaba <alliballibaba@gmail.com >
2024-11-04 15:34:00 +01:00
Kévin Dunglas
69c43ee43d
chore: use upstream e-dant/watcher headers and build system ( #1119 )
2024-10-31 09:39:51 +01:00
Kévin Dunglas
dad858b697
ci: remove remaining latest- prefix
2024-10-28 16:18:36 +01:00
Kévin Dunglas
f567318e19
ci: don't compress using UPX for PRs
2024-10-27 11:51:40 +01:00
Kévin Dunglas
afedeb9d58
refactor: use build tags to disable, instead of to enable a feature ( #1113 )
2024-10-24 14:14:47 +02:00
Kévin Dunglas
2532eb5887
chore: compile without nosql's support for Postgres and MySQL ( #1112 )
2024-10-22 22:50:31 +02:00
Kévin Dunglas
e9c075a4a5
feat: add build tag to skip Watcher support ( #1076 )
...
* feat: add build tag to skip Watcher support
* fix
* fix
* cleanup
2024-10-08 23:23:53 +02:00
Kévin Dunglas
029ce7e0ad
chore: use cc instead of hardcoding compiler
2024-10-07 15:37:26 +02:00
Alexander Stecher
8d9b6e755b
feat: restart workers when on source changes ( #1013 )
...
* Adds filesystem watcher with tests.
* Refactoring.
* Formatting.
* Formatting.
* Switches to absolute path in tests.
* Fixes race condition from merge conflict.
* Fixes race condition.
* Fixes tests.
* Fixes markdown lint errors.
* Switches back to absolute paths.
* Reverts back to relative file paths.
* Fixes golangci-lint issues.
* Uses github.com/dunglas/go-fswatch instead.
* Stops watcher before stopping workers.
* Updates docs.
* Avoids segfault in tests.
* Fixes watcher segmentation violations on shutdown.
* Adjusts watcher latencies and tests.
* Adds fswatch to dockerfiles
* Fixes fswatch in alpine.
* Fixes segfault (this time for real).
* Allows queueing new reload if file changes while workers are reloading.
* Makes tests more consistent.
* Prevents the watcher from getting stuck if there is an error in the worker file itself.
* Reverts changing the image.
* Puts fswatch version into docker-bake.hcl.
* Asserts instead of panicking.
* Adds notice
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Runs fswatch version.
* Removes .json.
* Replaces ms with s.
* Resets the channel after closing it.
* Update watcher_options.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Asserts no error instead.
* Fixes a race condition where events are fired after frankenphp has stopped.
* Updates docs.
* Update watcher_options_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Allows queuing events while watchers are reloading.
* go fmt
* Refactors stopping and draining logic.
* Allows extended watcher configuration with dirs, recursion, symlinks, case-sensitivity, latency, monitor types and regex.
* Updates docs.
* Adds TODOS.
* go fmt.
* Fixes linting errors.
* Also allows wildcards in the longform and adjusts docs.
* Adds debug log.
* Fixes the watcher short form.
* Refactors sessions and options into a struct.
* Fixes an overflow in the 'workersReadyWG' on unexpected terminations.
* Properly logs errors coming from session.Start().
* go fmt.
* Adds --nocache.
* Fixes lint issue.
* Refactors and resolves race condition on worker reload.
* Implements debouncing with a timer as suggested by @withinboredom.
* Starts watcher even if no workers are defined.
* Updates docs with file limit warning.
* Adds watch config unit tests.
* Adjusts debounce timings.
* go fmt.
* Adds fswatch to static builder (test).
* Adds a short grace period between stopping and destroying the watcher sessions.
* Adds caddy test.
* Adjusts sleep time.
* Swap to edant/watcher.
* Fixes watch options and tests.
* go fmt.
* Adds TODO.
* Installs edant/watcher in the bookworm image.
* Fixes linting.
* Refactors the watcher into its own module.
* Adjusts naming.
* ADocker image adjustments and refactoring.
* Testing installation methods.
* Installs via gcc instead.
* Fixes pointer formats.
* Fixes lint issues.
* Fixes arm alpine and updates docs.
* Clang format.
* Fixes dirs.
* Adds watcher version arg.
* Uses static lib version.
* Adds watcher to tests and sanitizers.
* Uses sudo for copying the shared lib.
* Removes unnused func.
* Refactoring.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Adds fpic.
* Fixes linting.
* Skips tests in msan.
* Resets op_cache in every worker thread after termination
* Review fixes part 1.
* Test: installing libstc++ instead of gcc.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Allows '/**/' for global recursion and '**/' for relative recursion.
* Reverts using the ignorelist.
* Calls opcache directly.
* Adds --watch to php-server command
* Properly free CStrings.
* Sorts alphabetically and uses curl instead of git.
* Labeling and formatting.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update caddy/caddy.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update testdata/files/.gitignore
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher-c.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Update watcher/watcher.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
* Fixes test and Dockerfile.
* Fixes Dockerfiles.
* Resets go versions.
* Replaces unsafe.pointer with uintptr_t
* Prevents worker channels from being destroyed on reload.
* Minimizes the public api by only passing a []string.
* Adds support for directory patterns and multiple '**' globs.
* Adjusts label.
* go fmt.
* go mod tidy.
* Fixes merge conflict.
* Refactoring and formatting.
* Cleans up unused vars and functions.
* Allows dirs with a dot.
* Makes test nicer.
* Add dir tests.
* Moves the watch directive inside the worker directive.
* Adds debug log on special events.
* Removes line about symlinks.
* Hints at multiple possible --watch flags.
* Adds ./**/*.php as default watch configuration.
* Changes error to a warning.
* Changes the default to './**/*.{php,yaml,yml,twig,env}' and supports the {bracket} pattern.
* Fixes linting.
* Fixes merge conflict and adjust values.
* Adjusts values.
---------
Co-authored-by: a.stecher <a.stecher@sportradar.com >
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr >
2024-10-07 13:17:24 +02:00
Kévin Dunglas
59f1690596
ci: better Docker cache
2024-09-26 15:44:56 +02:00
Kévin Dunglas
7a524ddbd5
ci: add back -Wall -Werror
2024-08-20 01:36:26 +02:00
Kévin Dunglas
496831329f
ci: run tests with PHP 8.4
2024-08-13 09:46:54 +02:00
Kévin Dunglas
3ca52f5934
ci: generate SLSA attestations for static binaries
2024-08-09 22:47:50 +02:00
Kévin Dunglas
968176a948
ci: run tests with ASAN and MSAN ( #955 )
2024-08-09 18:18:15 +02:00
Kévin Dunglas
6c708be99d
ci: upgrade to super-linter 6 ( #952 )
2024-08-04 14:05:54 +02:00
Kévin Dunglas
bcc825a121
ci: switch to super-linter slim variant
2024-08-02 17:33:18 +02:00
Kévin Dunglas
0500ebc191
perf: improve PHP thread management ( #898 )
2024-07-09 09:39:03 +02:00