Add Integration test

This commit is contained in:
2023-12-09 18:22:29 +01:00
parent 78ab267bf9
commit 3660d9d06b
3 changed files with 80 additions and 1 deletions

View File

@@ -80,5 +80,6 @@ jobs:
push: true
platforms: linux/amd64,linux/arm64
tags: |
"${{env.BUILDKIT_IMAGE}}:8.3.0-fpm"
"${{env.BUILDKIT_IMAGE}}:8.3.0"
"${{env.BUILDKIT_IMAGE}}:8.3"
"${{env.BUILDKIT_IMAGE}}:latest"

38
.github/workflows/integration-tests.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Integration Test
on:
push:
jobs:
integration:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Create Laravel project
run: |
composer create-project laravel/laravel laravel
- name: Fix Permission
run: chmod -R 777 ./laravel/storage
- name: Run docker-compose
run:
cp ./tests/compose.yaml compose.yaml &&
docker-compose -f "compose.yaml" up -d
- name: Create script.js for K6 test
run: |
touch script.js && cat > script.js <<EOF
import http from 'k6/http';
import { sleep } from 'k6';
export default function () {
//Link
http.get('http://localhost');
}
EOF
- name: Install k6
run: |
curl https://github.com/grafana/k6/releases/download/v0.47.0/k6-v0.47.0-linux-amd64.tar.gz -L | tar xvz --strip-components 1
- name: Test with K6
run: |
./k6 run script.js
- name: Test with curl
run: |
curl -i http://localhost

40
tests/compose.yaml Normal file
View File

@@ -0,0 +1,40 @@
version: '3'
services:
mysql:
image: mysql:8.0
container_name: mysql
restart: unless-stopped
environment:
MYSQL_DATABASE: php
MYSQL_ROOT_PASSWORD: password
MYSQL_PASSWORD: password
MYSQL_USER: php
ports:
- 3306:3306
php-fpm:
image: jkaninda/laravel-php-fpm:latest
container_name: php-fpm
restart: unless-stopped
depends_on:
- mysql
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_DATABASE: php
DB_USERNAME: php
DB_PASSWORD: password
volumes:
- ./laravel:/var/www/html
#Nginx server
nginx-server:
image: jkaninda/nginx-fpm:stable
container_name: nginx-server
restart: unless-stopped
ports:
- 80:80
volumes:
- ./laravel:/var/www/html
environment:
- DOCUMENT_ROOT=/var/www/html/public
- CLIENT_MAX_BODY_SIZE=20M
- PHP_FPM_HOST=php-fpm:9000