Skip to content

Commit 2ce67ef

Browse files
authored
Merge pull request #27 from KingPin/add-php-8.4
feat(ci/docs): add PHP 8.4 support to CI and docs
2 parents a49d630 + 7c1493a commit 2ce67ef

File tree

9 files changed

+137
-14
lines changed

9 files changed

+137
-14
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"ignorePatterns": [
3+
{
4+
"pattern": "^https://github.com/.*/pull/new/"
5+
},
6+
{
7+
"pattern": "^http://localhost"
8+
},
9+
{
10+
"pattern": "^https://sumguy.com"
11+
}
12+
],
13+
"timeout": "20s",
14+
"retryOn429": true,
15+
"retryCount": 3,
16+
"aliveStatusCodes": [200, 206]
17+
}

.github/workflows/docker-ci.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,19 @@ on:
44
push:
55
branches:
66
- '**'
7+
paths-ignore:
8+
- '**.md'
9+
- 'docs/**'
10+
- 'LICENSE'
11+
- '.gitignore'
712
pull_request:
813
branches:
914
- '**'
15+
paths-ignore:
16+
- '**.md'
17+
- 'docs/**'
18+
- 'LICENSE'
19+
- '.gitignore'
1020
schedule:
1121
- cron: '0 3 * * 2' # Weekly on Tuesday at 3:00 AM UTC
1222
workflow_dispatch:
@@ -22,7 +32,7 @@ jobs:
2232
fail-fast: false
2333
matrix:
2434
variant: [v1, v2]
25-
php-version: ['8.3', '8.2']
35+
php-version: ['8.4', '8.3', '8.2']
2636
php-type: [fpm, cli]
2737
php-base: [alpine, bookworm]
2838
exclude:
@@ -224,7 +234,7 @@ jobs:
224234
fail-fast: false
225235
matrix:
226236
variant: [v1, v2]
227-
php-version: ['8.3', '8.2']
237+
php-version: ['8.4', '8.3', '8.2']
228238
php-type: [fpm, cli, apache]
229239
php-base: [alpine, bookworm]
230240
exclude:

.github/workflows/docker-image.v1.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
fail-fast: false
1414
matrix:
1515
php-type: [cli, fpm, apache]
16-
php-version: ['8.3', '8.2']
16+
php-version: ['8.4', '8.3', '8.2']
1717
php-base-os: [bookworm, alpine]
1818
exclude:
1919
- php-type: apache

.github/workflows/docs-ci.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: Documentation CI
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
paths:
8+
- '**.md'
9+
- 'docs/**'
10+
pull_request:
11+
branches:
12+
- '**'
13+
paths:
14+
- '**.md'
15+
- 'docs/**'
16+
workflow_dispatch:
17+
18+
concurrency:
19+
group: docs-ci-${{ github.ref }}
20+
cancel-in-progress: true
21+
22+
jobs:
23+
markdown-lint:
24+
runs-on: ubuntu-latest
25+
name: Markdown Lint
26+
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
31+
- name: Lint Markdown files
32+
uses: DavidAnson/markdownlint-cli2-action@v16
33+
with:
34+
globs: |
35+
**/*.md
36+
!node_modules
37+
!.github
38+
39+
- name: Summary
40+
run: |
41+
echo "✅ Markdown linting passed"
42+
43+
link-checker:
44+
runs-on: ubuntu-latest
45+
name: Check Links
46+
47+
steps:
48+
- name: Checkout
49+
uses: actions/checkout@v4
50+
51+
- name: Check links in markdown files
52+
uses: gaurav-nelson/github-action-markdown-link-check@v1
53+
with:
54+
use-quiet-mode: 'yes'
55+
config-file: '.github/markdown-link-check-config.json'
56+
check-modified-files-only: 'yes'
57+
base-branch: 'main'
58+
59+
- name: Summary
60+
if: success()
61+
run: |
62+
echo "✅ Link checking passed"
63+
64+
docs-summary:
65+
runs-on: ubuntu-latest
66+
name: Docs CI Summary
67+
needs: [markdown-lint, link-checker]
68+
if: always()
69+
70+
steps:
71+
- name: Check job results
72+
run: |
73+
if [ "${{ needs.markdown-lint.result }}" = "success" ] && [ "${{ needs.link-checker.result }}" = "success" ]; then
74+
echo "✅ All documentation checks passed"
75+
exit 0
76+
elif [ "${{ needs.link-checker.result }}" = "failure" ]; then
77+
echo "⚠️ Link checker failed (non-blocking)"
78+
exit 0
79+
else
80+
echo "❌ Documentation checks failed"
81+
exit 1
82+
fi

.markdownlint.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"default": true,
3+
"MD013": false,
4+
"MD033": false,
5+
"MD041": false,
6+
"MD022": false,
7+
"MD032": false,
8+
"MD040": false,
9+
"MD031": false
10+
}

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ See [v1 vs v2 comparison](#v1-vs-v2-comparison) below for details.
1717
## Features
1818

1919
- **Multi-Architecture Support**: Works on `amd64`, `arm64/aarch64` and `arm32v7/armhf` platforms
20-
- **Multiple PHP Versions**: PHP 8.2 and 8.3 (actively built); PHP 7, 8 and 8.1 deprecated
20+
- **Multiple PHP Versions**: PHP 8.2, 8.3, and 8.4 (actively built); PHP 7.x, 8.0, and 8.1 deprecated
2121
- **Multiple Server Types**: CLI, FPM, and Apache
2222
- **Base OS Options**: Alpine (lightweight) and Debian (Bookworm/Bullseye)
2323
- **Extensive Extensions**: 30+ PHP extensions pre-installed
@@ -65,7 +65,7 @@ The following environment variables can be overridden when running containers:
6565
| `PHP_OPCACHE_MAX_ACCELERATED_FILES` | `10000` | OPCache maximum number of files |
6666
| `PHP_OPCACHE_REVALIDATE_FREQ` | `0` | How often to check script timestamps |
6767

68-
### Example usage:
68+
### Example usage
6969

7070
```bash
7171
docker run -e PHP_MEMORY_LIMIT=512M -e PHP_MAX_EXECUTION_TIME=600 kingpin/php-docker:8.3-fpm-alpine
@@ -311,6 +311,11 @@ Both v1 and v2 variants are available for all combinations below:
311311

312312
| PHP Version | Type | OS | v1 Tag Example | v2 Tag Example |
313313
|-------------|--------|-----------|------------------------|----------------------------|
314+
| 8.4 | CLI | Alpine | `8.4-cli-alpine` | `8.4-cli-alpine-v2` |
315+
| 8.4 | CLI | Bookworm | `8.4-cli-bookworm` | `8.4-cli-bookworm-v2` |
316+
| 8.4 | FPM | Alpine | `8.4-fpm-alpine` | `8.4-fpm-alpine-v2` |
317+
| 8.4 | FPM | Bookworm | `8.4-fpm-bookworm` | `8.4-fpm-bookworm-v2` |
318+
| 8.4 | Apache | Bookworm | `8.4-apache-bookworm` | `8.4-apache-bookworm-v2` |
314319
| 8.3 | CLI | Alpine | `8.3-cli-alpine` | `8.3-cli-alpine-v2` |
315320
| 8.3 | CLI | Bookworm | `8.3-cli-bookworm` | `8.3-cli-bookworm-v2` |
316321
| 8.3 | FPM | Alpine | `8.3-fpm-alpine` | `8.3-fpm-alpine-v2` |
@@ -322,7 +327,6 @@ Both v1 and v2 variants are available for all combinations below:
322327
| 8.2 | FPM | Bookworm | `8.2-fpm-bookworm` | `8.2-fpm-bookworm-v2` |
323328
| 8.2 | Apache | Bookworm | `8.2-apache-bookworm` | `8.2-apache-bookworm-v2` |
324329

325-
326330
> **Note:** PHP 8.1+ images are built on Bookworm (Debian 12). Bullseye tags redirect to Bookworm for PHP 8.1+.
327331
328332
### Deprecated Tags (v1 only)
@@ -344,7 +348,7 @@ The following tags are deprecated and will not be built going forward, but remai
344348
- `8.1-fpm-bullseye`, `8.1-fpm-bookworm`, `8.1-fpm-alpine`
345349
- `8.1-apache-bullseye`, `8.1-apache-bookworm`
346350

347-
> **Important:** These versions are deprecated. Please upgrade to PHP 8.2 or 8.3 for security and performance.
351+
> **Important:** These versions are deprecated. Please upgrade to PHP 8.2, 8.3, or 8.4 for security and performance.
348352
349353
## 📊 Image Sizes
350354

docs/ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ These run only via `workflow_dispatch` (manual trigger) and don't publish automa
9797
**Recommended settings for `main` branch:**
9898

9999
1. **Require pull request reviews**: At least 1 approval
100-
2. **Require status checks**:
100+
2. **Require status checks**:
101101
- `build-and-test` must pass
102102
- All matrix jobs must succeed
103103
3. **Require branches to be up to date**: Enable

docs/deprecated-images.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ This document lists PHP versions that are **no longer actively built** but remai
4141
**Last Build**: January 2025
4242
**Reason**: Focus maintenance on PHP 8.2+ for better resource allocation
4343

44-
#### Available Tags (Legacy)
44+
#### Available Tags
4545

4646
**Alpine-based:**
4747
- `8.1-cli-alpine`

docs/troubleshooting.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,20 +116,20 @@ docker run -e PHP_OPCACHE_MEMORY_CONSUMPTION=256 \
116116
kingpin/php-docker:8.3-fpm-alpine-v2
117117
```
118118

119-
2. **Enable JIT (PHP 8.0+):**
119+
1. **Enable JIT (PHP 8.0+):**
120120
```ini
121121
# Create custom php.ini
122122
opcache.jit_buffer_size=100M
123123
opcache.jit=1255
124124
```
125125

126-
3. **Use Alpine for smaller footprint:**
126+
1. **Use Alpine for smaller footprint:**
127127
```bash
128128
# Alpine is lighter than Bookworm
129129
docker pull kingpin/php-docker:8.3-fpm-alpine-v2
130130
```
131131

132-
4. **Profile your code:**
132+
1. **Profile your code:**
133133
```bash
134134
# Install xdebug for profiling
135135
FROM kingpin/php-docker:8.3-fpm-alpine-v2
@@ -255,7 +255,7 @@ COPY s6-services/ /etc/services.d/
255255
docker run --rm kingpin/php-docker:8.3-cli-alpine ping -c 3 db-host
256256
```
257257

258-
2. **Verify database host:**
258+
1. **Verify database host:**
259259
```yaml
260260
# Use service name in docker-compose
261261
services:
@@ -266,7 +266,7 @@ services:
266266
image: mysql:8
267267
```
268268

269-
3. **Check database is ready:**
269+
1. **Check database is ready:**
270270
```yaml
271271
services:
272272
php:

0 commit comments

Comments
 (0)