Upgrade to PHP 8.3.12, nginx to 1.27.2, MariaDB to 11.5.2 and phpunit… #12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker Compose Test | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- "*" | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build and test services | |
run: | | |
docker compose -f compose.yml up --build -d | |
- name: Test Xdebug | |
run: | | |
sleep 5 # Wait for the containers to fully initialize | |
XDEBUG_OUTPUT=$(curl -s http://localhost/index.php) | |
if [[ ! "$XDEBUG_OUTPUT" =~ "Xdebug" ]]; then | |
echo "Xdebug test failed. Not found in phpinfo() output." | |
exit 1 | |
else | |
echo "Xdebug test successful." | |
fi | |
- name: Install Composer dependencies | |
run: | | |
docker compose exec -T php-fpm composer install | |
- name: Run PHPUnit tests | |
run: | | |
docker compose exec -T php-fpm ./vendor/bin/phpunit --coverage-text --testdox tests | |
- name: Test Redis | |
run: | | |
sleep 5 # Wait for Redis to fully initialize | |
REDIS_TEST=$(docker compose exec -T redis redis-cli ping) | |
if [[ "$REDIS_TEST" != "PONG" ]]; then | |
echo "Redis test failed. No PONG response." | |
exit 1 | |
else | |
echo "Redis test successful." | |
fi | |
- name: Test MariaDB | |
env: | |
MARIADB_USER: ${{ secrets.MARIADB_USER }} | |
MARIADB_PASSWORD: ${{ secrets.MARIADB_PASSWORD }} | |
MARIADB_DATABASE: ${{ secrets.MARIADB_DATABASE }} | |
run: | | |
sleep 5 # Wait for MariaDB to fully initialize | |
MARIADB_TEST=$(docker compose exec -T mariadb mariadb -u${MARIADB_USER} -p${MARIADB_PASSWORD} -e "SHOW DATABASES LIKE '${MARIADB_DATABASE}';") | |
if [[ "$MARIADB_TEST" != *"${MARIADB_DATABASE}"* ]]; then | |
echo "MariaDB test failed. Database not found." | |
exit 1 | |
else | |
echo "MariaDB test successful." | |
fi | |
- name: Cleanup | |
run: | | |
docker compose -f compose.yml down |