Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"permissions": {
"allow": [
"Bash(make build:*)",
"Bash(docker run:*)",
"Bash(npm test:*)",
"Bash(make dist:*)",
"Bash(git add:*)",
"Bash(git commit:*)"
],
"deny": [],
"ask": []
}
}
38 changes: 38 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Static list of all lib directories
LIBS = \
libs/amazon-linux-2-v74 \
libs/amazon-linux-2-v80 \
libs/amazon-linux-2-v81 \
libs/amazon-linux-2-v82 \
libs/amazon-linux-2-v83 \
libs/amazon-linux-2023-v84 \
libs/almalinux-9-v85

# Rebuild all libs by running make build dist in each directory
.PHONY: rebuild
rebuild:
@for dir in $(LIBS); do \
echo "Rebuilding $$(basename $$dir)..."; \
(cd $$dir && $(MAKE) build dist) || echo "Failed to rebuild $$(basename $$dir)"; \
done

# Force add and commit all libs with pattern "[vXX] rebuild php"
.PHONY: rebuild-track
rebuild-track:
@for dir in $(LIBS); do \
dir_name=$$(basename $$dir); \
version=$$(echo "$$dir_name" | sed -E 's/.*-v([0-9]+)$$/v\1/'); \
if [ -n "$$version" ]; then \
echo "Processing $$dir_name ($$version)..."; \
git add -f $$dir/native; \
git commit -m "[$$version] rebuild php" || true; \
fi; \
done

# Run tests in all libs
.PHONY: test
test:
@for dir in $(LIBS); do \
echo "Running tests in $$(basename $$dir)..."; \
(cd $$dir && npm test) || echo "Tests failed in $$(basename $$dir)"; \
done
24 changes: 17 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,23 @@

## ⚙️ Runtimes

- [@libphp/amazon-linux-2-v72](@libphp/amazon-linux-2-v72)
- [@libphp/amazon-linux-2-v73](@libphp/amazon-linux-2-v73)
- [@libphp/amazon-linux-2-v74](@libphp/amazon-linux-2-v74)
- [@libphp/amazon-linux-2-v80](@libphp/amazon-linux-2-v80)
- [@libphp/amazon-linux-2-v81](@libphp/amazon-linux-2-v81)
- [@libphp/amazon-linux-2-v82](@libphp/amazon-linux-2-v82)
- [@libphp/amazon-linux-2-v83](@libphp/amazon-linux-2-v83)
### Amazon Linux 2

- [@libphp/amazon-linux-2-v72](libs/amazon-linux-2-v72) - PHP 7.2
- [@libphp/amazon-linux-2-v73](libs/amazon-linux-2-v73) - PHP 7.3
- [@libphp/amazon-linux-2-v74](libs/amazon-linux-2-v74) - PHP 7.4
- [@libphp/amazon-linux-2-v80](libs/amazon-linux-2-v80) - PHP 8.0
- [@libphp/amazon-linux-2-v81](libs/amazon-linux-2-v81) - PHP 8.1
- [@libphp/amazon-linux-2-v82](libs/amazon-linux-2-v82) - PHP 8.2
- [@libphp/amazon-linux-2-v83](libs/amazon-linux-2-v83) - PHP 8.3

### Amazon Linux 2023

- [@libphp/amazon-linux-2023-v84](libs/amazon-linux-2023-v84) - PHP 8.4

### AlmaLinux 9 (EL9)

- [@libphp/almalinux-9-v85](libs/almalinux-9-v85) - PHP 8.5

## ⚙️ Usage

Expand Down
60 changes: 46 additions & 14 deletions build/Makefile
Original file line number Diff line number Diff line change
@@ -1,29 +1,61 @@
.PHONY: test-runtime test-libs
.PHONY: test-82 test-83 test-84 test-85

# #######################################
# Testing isolated PHP libs + shared libs
# #######################################
# Test PHP 8.2 (Amazon Linux 2)
test-82:
docker run \
-it \
--rm \
--platform linux/amd64 \
-v $(CURDIR)/../libs/amazon-linux-2-v82/native/php:/var/task/php \
-v $(CURDIR)/../libs/amazon-linux-2-v82/native/lib:/var/task/lib/ \
-v $(CURDIR)/entrypoint.sh:/entrypoint.sh:ro \
-w /var/task \
--entrypoint /bin/bash \
-p 8000:8000 \
public.ecr.aws/lambda/nodejs:18 \
/entrypoint.sh

test-runtime:
# Test PHP 8.3 (Amazon Linux 2)
test-83:
docker run \
-it \
--rm \
--platform linux/amd64 \
-v $(CURDIR)/../libs/amazon-linux-2-v80/native/php:/var/task/php \
-v $(CURDIR)/../libs/amazon-linux-2-v80/native/lib:/var/task/lib/ \
-v $(CURDIR)/../libs/amazon-linux-2-v83/native/php:/var/task/php \
-v $(CURDIR)/../libs/amazon-linux-2-v83/native/lib:/var/task/lib/ \
-v $(CURDIR)/entrypoint.sh:/entrypoint.sh:ro \
-w /var/task \
--entrypoint /bin/bash \
-p 8000:8000 \
public.ecr.aws/lambda/nodejs:18
public.ecr.aws/lambda/nodejs:18 \
/entrypoint.sh

test-libs:
# Test PHP 8.4 (Amazon Linux 2023)
test-84:
docker run \
-it \
--rm \
--platform linux/amd64 \
-v $(CURDIR)/../libs/amazon-linux-2-v80/native/php:/var/task/php \
-v $(CURDIR)/../libs/amazon-linux-2-v80/native/lib:/var/task/lib/ \
-v $(CURDIR):/srv \
-w /srv \
-v $(CURDIR)/../libs/amazon-linux-2023-v84/native/php:/var/task/php \
-v $(CURDIR)/../libs/amazon-linux-2023-v84/native/lib:/var/task/lib/ \
-v $(CURDIR)/entrypoint.sh:/entrypoint.sh:ro \
-w /var/task \
--entrypoint /bin/bash \
public.ecr.aws/lambda/nodejs:18
-p 8000:8000 \
public.ecr.aws/lambda/nodejs:22 \
/entrypoint.sh

# Test PHP 8.5 (AlmaLinux 9)
test-85:
docker run \
-it \
--rm \
--platform linux/amd64 \
-v $(CURDIR)/../libs/almalinux-9-v85/native/php:/var/task/php \
-v $(CURDIR)/../libs/almalinux-9-v85/native/lib:/var/task/lib/ \
-v $(CURDIR)/entrypoint.sh:/entrypoint.sh:ro \
-w /var/task \
--entrypoint /bin/bash \
-p 8000:8000 \
public.ecr.aws/lambda/nodejs:22 \
/entrypoint.sh
3 changes: 0 additions & 3 deletions build/README.md

This file was deleted.

Loading