Skip to content

fix ./build-static.sh for consecutive builds#1496

Merged
dunglas merged 9 commits intophp:mainfrom
static-php:main
Apr 23, 2025
Merged

fix ./build-static.sh for consecutive builds#1496
dunglas merged 9 commits intophp:mainfrom
static-php:main

Conversation

@henderkes
Copy link
Copy Markdown
Contributor

#1474 is not enough to combat the issue because it'd still leave many important things uninitialised.

optionally, we could update the cache key to contain the minor php version too, because right now it would download e.g. 8.4.6, but skip a rebuild even though 8.4.5 was built last time, because the cache_key only says "8.4-..."

@dunglas
Copy link
Copy Markdown
Member

dunglas commented Apr 17, 2025

+1 to add the minor PHP version.

@dunglas
Copy link
Copy Markdown
Member

dunglas commented Apr 17, 2025

Could you please rebase?

Comment thread build-static.sh
@henderkes
Copy link
Copy Markdown
Contributor Author

TIL centos 7 doesn't have jq. Will have to compile from source too.

@henderkes henderkes requested review from dunglas and pierredup April 18, 2025 08:46
specify 8.4 so we manually switch to 8.5 when we make sure it works
allows to run without jq installed
Comment thread build-static.sh Outdated
Comment thread build-static.sh
Comment thread build-static.sh
Comment thread build-static.sh
Comment thread build-static.sh Outdated
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
@dunglas
Copy link
Copy Markdown
Member

dunglas commented Apr 22, 2025

Sorry, another rebase is needed

@henderkes
Copy link
Copy Markdown
Contributor Author

I can't make out any conflicts with main.

@dunglas dunglas merged commit 1681458 into php:main Apr 23, 2025
42 of 43 checks passed
@dunglas
Copy link
Copy Markdown
Member

dunglas commented Apr 23, 2025

Thanks!

henderkes added a commit to static-php/frankenphp that referenced this pull request Apr 24, 2025
* fix consecutive builds

* use minor version in PHP_VERSION

* install jq in centos container

* fix "arm64" download arch for spc binary

* jq is not available as a rpm download

* linter

* specify php 8.4 default

specify 8.4 so we manually switch to 8.5 when we make sure it works
allows to run without jq installed

* Apply suggestions from code review

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>

---------

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
dunglas added a commit that referenced this pull request May 5, 2025
…#1509)

* add module (php_server directive) based workers

* refactor moduleID to uintptr for faster comparisons

* let workers inherit environment variables and root from php_server

* caddy can shift FrankenPHPModules in memory for some godforsaken reason, can't rely on them staying the same

* remove debugging statement

* fix tests

* refactor moduleID to uint64 for faster comparisons

* actually allow multiple workers per script filename

* remove logging

* utility function

* reuse existing worker with same filename and environment when calling newWorker with a filepath that already has a suitable worker, simply add number of threads

* no cleanup happens between tests, so restore old global worker overwriting logic

* add test, use getWorker(ForContext) function in frankenphp.go as well

* bring error on second global worker with the same filename again

* refactor to using name instead of moduleID

* nicer name

* nicer name

* add more tests

* remove test case already covered by previous test

* revert back to single variable, moduleIDs no longer relevant

* update comment

* figure out the worker to use in FrankenPHPModule::ServeHTTP

* add caddy/config_tests, add --retry 5 to download

* add caddy/config_tests

* sum up logic a bit, put worker thread addition into moduleWorkers parsing, before workers are actually created

* implement suggestions as far as possible

* fixup

* remove tags

* feat: download the mostly static binary when possible (#1467)

* feat: download the mostly static binary when possible

* cs

* docs: remove wildcard matcher from root directive (#1513)

* docs: update README with additional documentation links

Add link to classic mode, efficiently serving large static files and monitoring FrankenPHP

Signed-off-by: Romain Bastide <romain.bastide@orange.com>

* ci: combine dependabot updates for one group to 1 pull-request

* feat: compatibility with libphp.dylib on macOS

* feat: upgrade to Caddy 2.10

* feat: upgrade to Caddy 2.10

* chore: run prettier

* fix: build-static.sh consecutive builds (#1496)

* fix consecutive builds

* use minor version in PHP_VERSION

* install jq in centos container

* fix "arm64" download arch for spc binary

* jq is not available as a rpm download

* linter

* specify php 8.4 default

specify 8.4 so we manually switch to 8.5 when we make sure it works
allows to run without jq installed

* Apply suggestions from code review

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>

---------

Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>

* chore: update Go and toolchain version (#1526)

* apply suggestions one be one - scriptpath only

* generate unique worker names by filename and number

* support worker config from embedded apps

* rename back to make sure we don't accidentally add FrankenPHPApp workers to the slice

* fix test after changing error message

* use 🧩 for module workers

* use 🌍 for global workers :)

* revert 1c414ce

* revert 4cc8893

* apply suggestions

* add dynamic config loading test of module worker

* fix test

* minor changes

---------

Signed-off-by: Romain Bastide <romain.bastide@orange.com>
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
Co-authored-by: Indra Gunawan <hello@indra.my.id>
Co-authored-by: Romain Bastide <romain.bastide@orange.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants