Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
2fcac0f
feat: upgrade dependencies to use latest Illuminate versions, update …
Nov 19, 2020
d3b9377
feat: Adding Docker image and Docker Compose environment
jasdeepkhalsa Nov 27, 2020
10cb400
Updating the docker-compose PHP and MySQL versions and the composer.j…
jasdeepkhalsa Jun 26, 2025
cce60aa
feat: upgrade diff/diff to v3.0 for PHP 8.4 compatibility
jasdeepkhalsa Jun 26, 2025
4b0280a
Successfully running test-runner script
jasdeepkhalsa Jun 27, 2025
01be68e
Watch mode added with more developer friendly output
jasdeepkhalsa Jun 27, 2025
fadc31e
Cleaning up the docker-compose workflow with start and stop scripts (…
jasdeepkhalsa Jun 29, 2025
35ad115
All databases from 8.0 now working with DBDiff PHPUnit Tests
jasdeepkhalsa Jun 30, 2025
79b6a82
WIP: Comprehensive DB tests with fixtures covering multiple scenarios
jasdeepkhalsa Feb 3, 2026
77e2711
The error Unknown option "--verbose" occurred because PHPUnit 11 was …
jasdeepkhalsa Feb 7, 2026
4bc56ef
Constructor Error: Moved logic from __construct to setUp to comply wi…
jasdeepkhalsa Feb 7, 2026
ba5729f
The Problem:
jasdeepkhalsa Feb 7, 2026
a3027cc
Updates to Deterministic Sorting
jasdeepkhalsa Feb 7, 2026
e2e220b
Legacy Test Modernization: I added "Record Mode" to the legacy End2En…
jasdeepkhalsa Feb 7, 2026
99accfc
Summary of Changes
jasdeepkhalsa Feb 8, 2026
9619dbd
Fixes Implemented:
jasdeepkhalsa Feb 8, 2026
77d4611
What went wrong and how I fixed it:
jasdeepkhalsa Feb 8, 2026
52f381a
Fixed Self-Deleting Artifacts: The cleanupOutputFiles method in the c…
jasdeepkhalsa Feb 8, 2026
9ad9a39
docker-compose.yml was missing the volumes link, in order to treat th…
jasdeepkhalsa Feb 8, 2026
7bbec99
1. Detailed Test Descriptions (--testdox): Updated run-comprehensive-…
jasdeepkhalsa Feb 8, 2026
494130f
Leave out vendor dir in docker-compose
jasdeepkhalsa Feb 8, 2026
0791881
I have implemented a new --fast flag for start.sh that provides a hig…
jasdeepkhalsa Feb 8, 2026
bfbcdd3
Commtting the new database test fixtures after the machine/platform/d…
jasdeepkhalsa Feb 8, 2026
f4e7991
chore: modernize test environment and improve Git hygiene
jasdeepkhalsa Feb 8, 2026
96a6866
Adding parallel execution flag and recording any remaining outputs
jasdeepkhalsa Feb 8, 2026
5ed964a
Updating fixtures for MySQL 9.x
jasdeepkhalsa Feb 8, 2026
a5de71b
Updating docs
jasdeepkhalsa Feb 8, 2026
a773cf4
Whether you run ./start.sh all all (sequential) or ./start.sh all all…
jasdeepkhalsa Feb 8, 2026
69e87d4
Fixes for progress:
jasdeepkhalsa Feb 8, 2026
662cb0e
fix: phpunit version-aware flags and robust db host detection for CI
jasdeepkhalsa Feb 8, 2026
3192d27
fix: sync mysql 9 fixtures and restore phpunit 9 xml compatibility
jasdeepkhalsa Feb 8, 2026
f99d1e1
fix: polyglot phpunit configs and whitespace-robust test assertions
jasdeepkhalsa Feb 8, 2026
f90e362
Updating README
jasdeepkhalsa Feb 8, 2026
8bbcbca
feat: add automated GHA and local release tools with PHAR support wit…
jasdeepkhalsa Feb 8, 2026
1c3d326
Addressing SonarCloud security hotspots
jasdeepkhalsa Feb 8, 2026
404a4f0
Further security fixes
jasdeepkhalsa Feb 9, 2026
4e56bd5
Further security fixes
jasdeepkhalsa Feb 9, 2026
8f85f26
Only configured sonarcloud automatic, more security fixes to Dockerfi…
jasdeepkhalsa Feb 9, 2026
d7ca1db
Re-ordering scripts so it works in vanilla Docker and not just GHA
jasdeepkhalsa Feb 9, 2026
e5d8e25
Initial plan
Copilot Feb 9, 2026
b3eef96
Address PR review comments: remove .env, fix encoding, remove redunda…
Copilot Feb 9, 2026
432d65b
temp to see tests pass or not
jasdeepkhalsa Feb 9, 2026
87bfaf3
Revert "temp to see tests pass or not"
jasdeepkhalsa Feb 9, 2026
2a3582e
Merge pull request #138 from DBDiff/copilot/sub-pr-136
jasdeepkhalsa Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Exclude sensitive data
.git
.env
.env.example
.phpunit.cache

# Exclude build and local artifacts
dist/
images/
reports/

# Exclude vendor (it will be installed in the container)
vendor/
39 changes: 39 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# DBDiff Test Runner Configuration
# This file contains configurable environment variables for the test runner

# Individual PHP Versions
PHP_VERSION_74=7.4
PHP_VERSION_83=8.3
PHP_VERSION_84=8.4

# Individual MySQL Versions
MYSQL_VERSION_80=8.0
MYSQL_VERSION_84=8.4
MYSQL_VERSION_93=9.3

# Database Ports (individual ports for each MySQL version)
DB_PORT_MYSQL80=3306
DB_PORT_MYSQL84=3307
DB_PORT_MYSQL93=3308

# PHPMyAdmin Ports (individual ports for each MySQL version)
PHPMYADMIN_PORT_MYSQL80=8080
PHPMYADMIN_PORT_MYSQL84=8081
PHPMYADMIN_PORT_MYSQL93=8082

# Database Connection Details
DB_ROOT_PASSWORD="rootpass"
DB_NAME="diff1"
DB_USER="dbdiff"
DB_PASSWORD="dbdiff"

# Timeout Configuration (in seconds)
DATABASE_STARTUP_TIMEOUT=180
DATABASE_HEALTH_TIMEOUT=120
CLI_BUILD_TIMEOUT=300
PHP_VERSION_CHECK_TIMEOUT=30
PHPUNIT_TEST_TIMEOUT=300

# Docker Configuration
COMPOSE_BAKE=true
COMPOSE_PROJECT_NAME="dbdiff"
4 changes: 0 additions & 4 deletions .github/FUNDING.yml

This file was deleted.

56 changes: 56 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Release DBDiff

on:
workflow_dispatch:
inputs:
version:
description: 'SemVer version to release (e.g. v1.1.0, v2.0.0)'
required: true
default: 'v1.1.0'

jobs:
release:
name: Create Release
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup PHP
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2
with:
php-version: '8.3'
extensions: phar, openssl, zlib
tools: composer
ini-values: phar.readonly=0

- name: Install dependencies
run: composer install --no-dev --optimize-autoloader

- name: Build PHAR
run: |
chmod +x scripts/build
php scripts/build

- name: Create Tag
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git tag -a ${{ github.event.inputs.version }} -m "Release ${{ github.event.inputs.version }}"
git push origin ${{ github.event.inputs.version }}

- name: Create GitHub Release
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2
with:
tag_name: ${{ github.event.inputs.version }}
name: Release ${{ github.event.inputs.version }}
files: |
dist/dbdiff.phar
dist/dbdiff.phar.gz
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57 changes: 57 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: DBDiff Test Suite

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
test:
name: PHP ${{ matrix.php-version }} / MySQL ${{ matrix.mysql-version }}
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
php-version: ['7.4', '8.3', '8.4']
mysql-version: ['8.0', '8.4', '9.3']

env:
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_ROOT_PASSWORD: rootpass
DB_USER: dbdiff
DB_PASSWORD: dbdiff

services:
mysql:
image: mysql:${{ matrix.mysql-version }}
env:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: diff1
MYSQL_USER: dbdiff
MYSQL_PASSWORD: dbdiff
ports:
- 3306:3306
options: >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=10

steps:
- uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2
with:
php-version: ${{ matrix.php-version }}
extensions: pdo, pdo_mysql, mysqli, json
coverage: none

- name: Install dependencies
run: composer install --prefer-dist --no-progress

- name: Run comprehensive tests
run: ./scripts/run-tests.sh
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,8 @@ migration.sql
.DS_Store
Thumbs.db
dist
.idea
.phpunit.result.cache
.phpunit.cache
tests/logs/
.env
15 changes: 15 additions & 0 deletions .sonarcloud.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Path to sources
sonar.sources=src
#sonar.exclusions=
#sonar.inclusions=

# Path to tests
sonar.tests=tests
#sonar.test.exclusions=
#sonar.test.inclusions=

# Source encoding
sonar.sourceEncoding=UTF-8

# Exclusions for copy-paste detection
#sonar.cpd.exclusions=
Loading