Skip to content

Commit 1380525

Browse files
authored
Merge pull request #168 from ndigitals/develop
feat(Admin lsphp): Updates build to support using PHP 8.2 sources for admin lsphp (#167)
2 parents 8aadcf5 + c38ae6a commit 1380525

File tree

3 files changed

+112
-6
lines changed

3 files changed

+112
-6
lines changed

.github/workflows/docker.yml

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
OLS_VERSION: '1.7.19'
1111
PHP_STABLE_VERSION: '8.3.6'
12+
OLS_ADMIN_PHP_STABLE_VERSION: '7.4.33'
1213
NODE_STABLE_VERSION: '20'
1314
REGISTRY: ghcr.io
1415

@@ -27,6 +28,13 @@ jobs:
2728
- '16'
2829
- '18'
2930
- '20'
31+
OLS_ADMIN_PHP_VERSION:
32+
- '7.4.33'
33+
include:
34+
- job-name: 'OLS Admin PHP 8.x RC'
35+
PHP_VERSION: '8.1.28'
36+
NODE_VERSION: '20'
37+
OLS_ADMIN_PHP_VERSION: '8.2.18'
3038

3139
steps:
3240
- name: Checkout
@@ -65,12 +73,22 @@ jobs:
6573
echo "_0=$_0" >> $GITHUB_OUTPUT
6674
echo "_1=$_1" >> $GITHUB_OUTPUT
6775
76+
# https://github.com/orgs/community/discussions/26625#discussioncomment-3252582
77+
- name: Determine OLS Admin PHP Major/Minor Version
78+
id: ols-admin-php-version
79+
run: |
80+
_0=$(echo ${{ matrix.OLS_ADMIN_PHP_VERSION }} | cut -d. -f1)
81+
_1=$(echo ${{ matrix.OLS_ADMIN_PHP_VERSION }} | cut -d. -f2)
82+
echo "_0=$_0" >> $GITHUB_OUTPUT
83+
echo "_1=$_1" >> $GITHUB_OUTPUT
84+
6885
# https://github.com/marketplace/actions/build-and-push-docker-images
6986
- name: Build and Push Docker Image
7087
uses: docker/build-push-action@v5
7188
if: |
7289
matrix.PHP_VERSION != env.PHP_STABLE_VERSION
7390
&& matrix.NODE_VERSION != env.NODE_STABLE_VERSION
91+
&& matrix.OLS_ADMIN_PHP_VERSION == env.OLS_ADMIN_PHP_STABLE_VERSION
7492
with:
7593
context: template
7694
platforms: linux/arm64
@@ -80,6 +98,9 @@ jobs:
8098
PHP_VERSION=${{ matrix.PHP_VERSION }}
8199
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
82100
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
101+
OLS_ADMIN_PHP_VERSION=${{ matrix.OLS_ADMIN_PHP_VERSION }}
102+
OLS_ADMIN_PHP_MAJOR_VERSION=${{ steps.ols-admin-php-version.outputs._0 }}
103+
OLS_ADMIN_PHP_MINOR_VERSION=${{ steps.ols-admin-php-version.outputs._1 }}
83104
NODE_VERSION=${{ matrix.NODE_VERSION }}
84105
push: true
85106
tags: |
@@ -97,6 +118,7 @@ jobs:
97118
if: |
98119
matrix.PHP_VERSION == env.PHP_STABLE_VERSION
99120
&& matrix.NODE_VERSION != env.NODE_STABLE_VERSION
121+
&& matrix.OLS_ADMIN_PHP_VERSION == env.OLS_ADMIN_PHP_STABLE_VERSION
100122
with:
101123
context: template
102124
platforms: linux/arm64
@@ -106,6 +128,9 @@ jobs:
106128
PHP_VERSION=${{ matrix.PHP_VERSION }}
107129
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
108130
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
131+
OLS_ADMIN_PHP_VERSION=${{ matrix.OLS_ADMIN_PHP_VERSION }}
132+
OLS_ADMIN_PHP_MAJOR_VERSION=${{ steps.ols-admin-php-version.outputs._0 }}
133+
OLS_ADMIN_PHP_MINOR_VERSION=${{ steps.ols-admin-php-version.outputs._1 }}
109134
NODE_VERSION=${{ matrix.NODE_VERSION }}
110135
push: true
111136
tags: |
@@ -123,6 +148,7 @@ jobs:
123148
if: |
124149
matrix.PHP_VERSION != env.PHP_STABLE_VERSION
125150
&& matrix.NODE_VERSION == env.NODE_STABLE_VERSION
151+
&& matrix.OLS_ADMIN_PHP_VERSION == env.OLS_ADMIN_PHP_STABLE_VERSION
126152
with:
127153
context: template
128154
platforms: linux/arm64
@@ -132,6 +158,9 @@ jobs:
132158
PHP_VERSION=${{ matrix.PHP_VERSION }}
133159
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
134160
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
161+
OLS_ADMIN_PHP_VERSION=${{ matrix.OLS_ADMIN_PHP_VERSION }}
162+
OLS_ADMIN_PHP_MAJOR_VERSION=${{ steps.ols-admin-php-version.outputs._0 }}
163+
OLS_ADMIN_PHP_MINOR_VERSION=${{ steps.ols-admin-php-version.outputs._1 }}
135164
NODE_VERSION=${{ matrix.NODE_VERSION }}
136165
push: true
137166
tags: |
@@ -153,6 +182,7 @@ jobs:
153182
if: |
154183
matrix.PHP_VERSION == env.PHP_STABLE_VERSION
155184
&& matrix.NODE_VERSION == env.NODE_STABLE_VERSION
185+
&& matrix.OLS_ADMIN_PHP_VERSION == env.OLS_ADMIN_PHP_STABLE_VERSION
156186
with:
157187
context: template
158188
platforms: linux/arm64
@@ -162,6 +192,9 @@ jobs:
162192
PHP_VERSION=${{ matrix.PHP_VERSION }}
163193
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
164194
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
195+
OLS_ADMIN_PHP_VERSION=${{ matrix.OLS_ADMIN_PHP_VERSION }}
196+
OLS_ADMIN_PHP_MAJOR_VERSION=${{ steps.ols-admin-php-version.outputs._0 }}
197+
OLS_ADMIN_PHP_MINOR_VERSION=${{ steps.ols-admin-php-version.outputs._1 }}
165198
NODE_VERSION=${{ matrix.NODE_VERSION }}
166199
push: true
167200
tags: |
@@ -178,6 +211,31 @@ jobs:
178211
cache-from: type=registry,ref=${{ env.REGISTRY }}/ndigitals/openlitespeed
179212
cache-to: type=inline
180213

214+
# https://github.com/marketplace/actions/build-and-push-docker-images
215+
- name: Build and Push Docker Image Admin PHP 8.x RC
216+
uses: docker/build-push-action@v5
217+
if: |
218+
matrix.OLS_ADMIN_PHP_VERSION != env.OLS_ADMIN_PHP_STABLE_VERSION
219+
with:
220+
context: template
221+
platforms: linux/arm64
222+
provenance: false
223+
build-args: |
224+
OLS_VERSION=${{ env.OLS_VERSION }}
225+
PHP_VERSION=${{ matrix.PHP_VERSION }}
226+
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
227+
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
228+
OLS_ADMIN_PHP_VERSION=${{ matrix.OLS_ADMIN_PHP_VERSION }}
229+
OLS_ADMIN_PHP_MAJOR_VERSION=${{ steps.ols-admin-php-version.outputs._0 }}
230+
OLS_ADMIN_PHP_MINOR_VERSION=${{ steps.ols-admin-php-version.outputs._1 }}
231+
NODE_VERSION=${{ matrix.NODE_VERSION }}
232+
push: true
233+
tags: |
234+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}-adminlsphp${{ steps.ols-admin-php-version.outputs._0 }}${{ steps.ols-admin-php-version.outputs._1 }}
235+
no-cache: ${{ github.event_name == 'workflow_dispatch' && true || false }}
236+
cache-from: type=registry,ref=${{ env.REGISTRY }}/ndigitals/openlitespeed
237+
cache-to: type=inline
238+
181239
release:
182240
name: Publish Release
183241
runs-on: ubuntu-latest

.github/workflows/test-builds.yml

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
OLS_VERSION: '1.7.19'
1111
PHP_STABLE_VERSION: '8.3.6'
12+
OLS_ADMIN_PHP_STABLE_VERSION: '7.4.33'
1213
NODE_STABLE_VERSION: '20'
1314
REGISTRY: ghcr.io
1415

@@ -25,6 +26,13 @@ jobs:
2526
NODE_VERSION:
2627
- '18'
2728
- '20'
29+
OLS_ADMIN_PHP_VERSION:
30+
- '7.4.33'
31+
include:
32+
- job-name: 'OLS Admin PHP 8.x RC'
33+
PHP_VERSION: '8.1.28'
34+
NODE_VERSION: '20'
35+
OLS_ADMIN_PHP_VERSION: '8.2.18'
2836

2937
steps:
3038
- name: Checkout
@@ -54,6 +62,15 @@ jobs:
5462
echo "_0=$_0" >> $GITHUB_OUTPUT
5563
echo "_1=$_1" >> $GITHUB_OUTPUT
5664
65+
# https://github.com/orgs/community/discussions/26625#discussioncomment-3252582
66+
- name: Determine OLS Admin PHP Major/Minor Version
67+
id: ols-admin-php-version
68+
run: |
69+
_0=$(echo ${{ matrix.OLS_ADMIN_PHP_VERSION }} | cut -d. -f1)
70+
_1=$(echo ${{ matrix.OLS_ADMIN_PHP_VERSION }} | cut -d. -f2)
71+
echo "_0=$_0" >> $GITHUB_OUTPUT
72+
echo "_1=$_1" >> $GITHUB_OUTPUT
73+
5774
# https://github.com/marketplace/actions/build-and-push-docker-images
5875
- name: Build Docker Image
5976
uses: docker/build-push-action@v5
@@ -66,31 +83,53 @@ jobs:
6683
PHP_VERSION=${{ matrix.PHP_VERSION }}
6784
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
6885
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
86+
OLS_ADMIN_PHP_VERSION=${{ matrix.OLS_ADMIN_PHP_VERSION }}
87+
OLS_ADMIN_PHP_MAJOR_VERSION=${{ steps.ols-admin-php-version.outputs._0 }}
88+
OLS_ADMIN_PHP_MINOR_VERSION=${{ steps.ols-admin-php-version.outputs._1 }}
6989
NODE_VERSION=${{ matrix.NODE_VERSION }}
7090
load: true
7191
push: false
72-
tags: openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
92+
tags: openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}-adminlsphp${{ steps.ols-admin-php-version.outputs._0 }}${{ steps.ols-admin-php-version.outputs._1 }}
7393
no-cache: ${{ github.event_name == 'workflow_dispatch' && true || false }}
7494
cache-from: type=registry,ref=${{ env.REGISTRY }}/ndigitals/openlitespeed
7595
cache-to: type=inline
7696

7797
- name: Test Docker Image
7898
run: |
79-
IMAGE=openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
99+
IMAGE=openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}-adminlsphp${{ steps.ols-admin-php-version.outputs._0 }}${{ steps.ols-admin-php-version.outputs._1 }}
100+
echo -e 'Testing PHP Info Site...'
80101
ID=$(docker run -d ${IMAGE})
81102
sleep 5s
82103
docker exec -i ${ID} su -c 'mkdir -p /var/www/vhosts/localhost/html/ && echo "<?php phpinfo();" > /var/www/vhosts/localhost/html/index.php && service lsws restart'
83-
HTTP=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -Ik -w "%{http_code}" http://localhost')
104+
HTTP=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -IkL -w "%{http_code}" http://localhost')
84105
HTTPS=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -Ik -w "%{http_code}" https://localhost')
85106
docker kill ${ID} &>/dev/null
86107
docker rm ${ID} &>/dev/null
87108
if [[ "${HTTP}" != "200" || "${HTTPS}" != "200" ]]; then
88109
echo -e '[\u2718] Test failed!'
89110
echo "http://localhost returned ${HTTP}"
90111
echo "https://localhost returned ${HTTPS}"
112+
docker rmi ${IMAGE} &>/dev/null
91113
exit 1
92114
else
115+
echo -e '[\u2714] Tests passed!'
116+
fi
117+
echo -e 'Testing OLS Admin Control Panel...'
118+
ID=$(docker run -d ${IMAGE})
119+
sleep 5s
120+
HTTP=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -IkL -w "%{http_code}" "http://localhost:7080/login.php?timedout=1#view/confMgr.php?m=tp_docker&p=ext"')
121+
HTTPS=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -Ik -w "%{http_code}" "https://localhost:7080/login.php?timedout=1#view/confMgr.php?m=tp_docker&p=ext"')
122+
docker kill ${ID} &>/dev/null
123+
docker rm ${ID} &>/dev/null
124+
if [[ "${HTTP}" != "200" || "${HTTPS}" != "200" ]]; then
125+
echo -e '[\u2718] Test failed!'
126+
echo "http://localhost returned ${HTTP}"
127+
echo "https://localhost returned ${HTTPS}"
93128
docker rmi ${IMAGE} &>/dev/null
129+
exit 1
130+
else
94131
echo -e '[\u2714] Tests passed!'
95132
fi
133+
echo -e 'Cleaning Up Test Image...'
134+
docker rmi ${IMAGE} &>/dev/null
96135

template/Dockerfile

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ ARG OLS_VERSION
22
ARG PHP_VERSION
33
ARG PHP_MAJOR_VERSION
44
ARG PHP_MINOR_VERSION
5+
ARG OLS_ADMIN_PHP_VERSION
6+
ARG OLS_ADMIN_PHP_MAJOR_VERSION
7+
ARG OLS_ADMIN_PHP_MINOR_VERSION
58
ARG NODE_VERSION
69

710
FROM wordpress:cli-php${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} AS wp-cli
@@ -10,6 +13,9 @@ ARG OLS_VERSION
1013
ARG PHP_VERSION
1114
ARG PHP_MAJOR_VERSION
1215
ARG PHP_MINOR_VERSION
16+
ARG OLS_ADMIN_PHP_VERSION
17+
ARG OLS_ADMIN_PHP_MAJOR_VERSION
18+
ARG OLS_ADMIN_PHP_MINOR_VERSION
1319
ARG NODE_VERSION
1420

1521
FROM litespeedtech/openlitespeed:${OLS_VERSION}-lsphp${PHP_MAJOR_VERSION}0 AS ols
@@ -26,15 +32,18 @@ ARG OLS_VERSION
2632
ARG PHP_VERSION
2733
ARG PHP_MAJOR_VERSION
2834
ARG PHP_MINOR_VERSION
35+
ARG OLS_ADMIN_PHP_VERSION
36+
ARG OLS_ADMIN_PHP_MAJOR_VERSION
37+
ARG OLS_ADMIN_PHP_MINOR_VERSION
2938
ARG NODE_VERSION
3039

3140
ENV OLS_VERSION=${OLS_VERSION}
3241
ENV PHP_VERSION=${PHP_VERSION}
3342
ENV PHP_MAJOR_VERSION=${PHP_MAJOR_VERSION}
3443
ENV PHP_MINOR_VERSION=${PHP_MINOR_VERSION}
35-
ENV OLS_ADMIN_PHP_VERSION=7.4.33
36-
ENV OLS_ADMIN_PHP_MAJOR_VERSION=7
37-
ENV OLS_ADMIN_PHP_MINOR_VERSION=4
44+
ENV OLS_ADMIN_PHP_VERSION=${OLS_ADMIN_PHP_VERSION}
45+
ENV OLS_ADMIN_PHP_MAJOR_VERSION=${OLS_ADMIN_PHP_MAJOR_VERSION}
46+
ENV OLS_ADMIN_PHP_MINOR_VERSION=${OLS_ADMIN_PHP_MINOR_VERSION}
3847
ENV NODE_VERSION=${NODE_VERSION}
3948

4049
COPY *.sh /build/

0 commit comments

Comments
 (0)