-
Notifications
You must be signed in to change notification settings - Fork 131
112 lines (89 loc) · 3.19 KB
/
Copy pathfrankenphp-test.yml
File metadata and controls
112 lines (89 loc) · 3.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
name: FrankenPHP test
on:
push:
branches:
- main
tags-ignore:
- '**'
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
debian-build:
name: Build and Run Debian-based Docker image
runs-on: ubuntu-24.04
strategy:
fail-fast: true
matrix:
php: [ 8.3, 8.4 ]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP with Composer and extensions
uses: ./.github/actions/setup-php
with:
php-version: "${{ matrix.php }}"
cache-key: "${{ runner.os }}-composer-${{ matrix.php }}"
- name: Create app directory
run: mkdir -p /var/www
- name: Install a fresh Laravel app
run: sudo composer create-project laravel/laravel app
working-directory: /var/www
- name: Install Laravel Octane
run: sudo composer require laravel/octane
working-directory: /var/www/app
- name: Copy required content to dockerize the app
run: sudo cp -R FrankenPHP.Dockerfile .dockerignore deployment/ /var/www/app/
- name: Build image
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f FrankenPHP.Dockerfile .
working-directory: /var/www/app
- name: Run the Docker container
run: docker run -d --name app --rm -p 8000:8000 app:local
working-directory: /var/www/app
- name: Wait for the container
run: sleep 30s
- name: Print the container logs
run: docker logs app
- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000/up
alpine-build:
name: Build and Run Alpine-based Docker image
runs-on: ubuntu-24.04
strategy:
fail-fast: true
matrix:
php: [ 8.3, 8.4 ]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP with Composer and extensions
uses: ./.github/actions/setup-php
with:
php-version: "${{ matrix.php }}"
cache-key: "${{ runner.os }}-composer-${{ matrix.php }}"
- name: Create app directory
run: mkdir -p /var/www
- name: Install a fresh Laravel app
run: sudo composer create-project laravel/laravel app
working-directory: /var/www
- name: Install Laravel Octane
run: sudo composer require laravel/octane
working-directory: /var/www/app
- name: Copy required content to dockerize the app
run: sudo cp -R FrankenPHP.Alpine.Dockerfile .dockerignore deployment/ /var/www/app/
- name: Build image
run: docker build -t app:local --build-arg PHP_VERSION=${{ matrix.php }} -f FrankenPHP.Alpine.Dockerfile .
working-directory: /var/www/app
- name: Run the Docker container
run: docker run -d --name app --rm -p 8000:8000 app:local
working-directory: /var/www/app
- name: Wait for the container
run: sleep 30s
- name: Print the container logs
run: docker logs app
- name: Check application health
run: curl -f -s -o /dev/null -w "%{http_code}" http://localhost:8000/up