Skip to content
Merged

Dev #121

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
a7fc0ce
chore: Updated License Headers
usernane Dec 30, 2025
2803828
chore: Updated License Headers
usernane Dec 30, 2025
ff78798
feat: Repo
usernane Dec 31, 2025
9ea1fcf
Update ResultSet.php
usernane Dec 31, 2025
83c4a5c
feat: Attributes
usernane Dec 31, 2025
dbde80c
feat: Entity Generator
usernane Jan 1, 2026
a4f1a7f
refactor: Move Classes to Correct NS
usernane Jan 1, 2026
889a65d
refactor: Namespaces Correction
usernane Jan 1, 2026
457c8ef
refactor: Enhanced Migrations Runner
usernane Jan 1, 2026
aaae1f0
feat: Migration/Seeder Discovery
usernane Jan 1, 2026
23c2a9b
fix: Ignore if Migration Already Registered
usernane Jan 1, 2026
e5694e6
feat: Batching of Migrations
usernane Jan 1, 2026
699673a
feat: Add Support for Dry Run
usernane Jan 4, 2026
a5d4ef6
feat: Add Support for `DatabaseChangeResult`
usernane Jan 4, 2026
4ebe09d
feat: Add Support for `DatabaseChangeGenerator`
usernane Jan 4, 2026
302f3ef
refactor: Removal of `setDatabase/getDatabase`
usernane Jan 4, 2026
dca1048
feat: Add Support for Getting Connection Info Under Change
usernane Jan 4, 2026
145ad9c
feat: Wrap Transitions in Changes
usernane Jan 4, 2026
9ab0c9e
refactor: Fix Missing Imports
usernane Jan 4, 2026
815588f
Create MSSQLAttributeTestUser.php
usernane Jan 4, 2026
e66aff0
Create MSSQLAttributeTestPost.php
usernane Jan 4, 2026
bf09ed1
fix: Imports Correction
usernane Jan 4, 2026
da6a6e6
refactor: Mixed Data Type
usernane Jan 4, 2026
e56a1ba
fix(mysql): Auto-Increment
usernane Jan 4, 2026
180ebec
test: Fix Test Case
usernane Jan 4, 2026
caddba0
test: Fix Test Case
usernane Jan 4, 2026
95cdf0a
Update SchemaErrorHandlingTest.php
usernane Jan 4, 2026
82d3af7
Update SchemaRunnerTest.php
usernane Jan 4, 2026
f7055c9
Update SchemaRunnerTest.php
usernane Jan 4, 2026
adab255
Update SchemaChangeRepository.php
usernane Jan 4, 2026
a43b66e
Update DryRunTest.php
usernane Jan 4, 2026
2c1ff4f
Update SchemaErrorHandlingTest.php
usernane Jan 4, 2026
74d3ffd
chore: Run CS Fixer
usernane Jan 4, 2026
f49786d
chore: Merge pull request #119 from WebFiori/feat-attributes
usernane Jan 4, 2026
d5e533a
docs: Updated Code Samples
usernane Jan 4, 2026
b94caa0
docs: Added Links to Related Examples
usernane Jan 4, 2026
591799a
docs: Updated Clean Arch Example
usernane Jan 5, 2026
9b04198
docs: Updated Code Samples + FK Refactoring
usernane Jan 5, 2026
a4fd027
feat: `saveAll` in Repo
usernane Jan 5, 2026
84e3a45
docs: Updated Code Examples
usernane Jan 5, 2026
51548cb
docs: Multiple Updates
usernane Jan 5, 2026
6414b6e
fix: Return Count of Deleted
usernane Jan 5, 2026
8c329ad
chore: Merge pull request #120 from WebFiori/docs
usernane Jan 5, 2026
45fc84a
chore: Exclude Examples from Scan
usernane Jan 6, 2026
a417c6b
refactor: Fix Quality Issues
usernane Jan 6, 2026
ed99655
chore: Updated License
usernane Jan 6, 2026
526655e
chore: Merge pull request #122 from WebFiori/docs
usernane Jan 6, 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
27 changes: 1 addition & 26 deletions .github/workflows/php84.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,29 +100,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: code-coverage
path: php-8.4-coverage.xml


code-coverage:
name: Coverage
needs: test
uses: WebFiori/workflows/.github/workflows/coverage-codecov.yaml@main
with:
php-version: '8.1'
coverage-file: 'php-8.1-coverage.xml'
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

code-quality:
name: Code Quality
needs: test
uses: WebFiori/workflows/.github/workflows/quality-sonarcloud.yaml@main
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

release-prod:
name: Prepare Production Release Branch / Publish Release
needs: [code-coverage, code-quality]
uses: WebFiori/workflows/.github/workflows/release-php.yaml@main
with:
branch: 'main'
path: php-8.4-coverage.xml
128 changes: 128 additions & 0 deletions .github/workflows/php85.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
name: PHP 8.5

on:
push:
branches: [ main ]
pull_request:
branches: [ main , dev]

jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 10

env:
SA_SQL_SERVER_PASSWORD: ${{ secrets.SA_SQL_SERVER_PASSWORD }}
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}

services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
env:
SA_PASSWORD: ${{ secrets.SA_SQL_SERVER_PASSWORD }}
ACCEPT_EULA: Y
MSSQL_PID: Express
ports:
- "1433:1433"
mysql:
image: mysql:8.0
env:
MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
MYSQL_DATABASE: testing_db
MYSQL_ROOT_HOST: '%'
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
strategy:
fail-fast: true

name: Run PHPUnit Tests

steps:
- name: Clone Repo
uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.5
extensions: mysqli, mbstring, sqlsrv
tools: phpunit:11.5.27, composer

- name: Install ODBC Driver for SQL Server
run: |
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt update
sudo ACCEPT_EULA=Y apt install mssql-tools18 unixodbc-dev msodbcsql18

- name: Wait for SQL Server
run: |
for i in {1..12}; do
if /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P '${{ secrets.SA_SQL_SERVER_PASSWORD }}' -Q 'SELECT 1' -C > /dev/null 2>&1; then
echo "SQL Server is ready"
break
fi
echo "Waiting for SQL Server... ($i/12)"
sleep 10
done

- name: Create SQL Server Database
run: /opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P '${{ secrets.SA_SQL_SERVER_PASSWORD }}' -Q 'create database testing_db' -C

- name: Setup MySQL Client
run: |
sudo apt update
sudo apt install mysql-client-core-8.0

- name: Wait for MySQL
run: |
until mysqladmin ping -h 127.0.0.1 --silent; do
echo 'waiting for mysql...'
sleep 1
done

- name: Create MySQL Database
run: |
mysql -h 127.0.0.1 -u root -p${{ secrets.MYSQL_ROOT_PASSWORD }} -e "CREATE DATABASE IF NOT EXISTS testing_db;"

- name: Install Dependencies
run: composer install --prefer-source --no-interaction

- name: Execute Tests
run: phpunit --configuration=tests/phpunit10.xml --coverage-clover=clover.xml --stop-on-failure

- name: Rename coverage report
run: |
mv clover.xml php-8.5-coverage.xml

- name: Upload Coverage Report
uses: actions/upload-artifact@v4
with:
name: code-coverage
path: php-8.5-coverage.xml


code-coverage:
name: Coverage
needs: test
uses: WebFiori/workflows/.github/workflows/coverage-codecov.yaml@main
with:
php-version: '8.5'
coverage-file: 'php-8.5-coverage.xml'
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

code-quality:
name: Code Quality
needs: test
uses: WebFiori/workflows/.github/workflows/quality-sonarcloud.yaml@main
secrets:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

release-prod:
name: Prepare Production Release Branch / Publish Release
needs: [code-coverage, code-quality]
uses: WebFiori/workflows/.github/workflows/release-php.yaml@main
with:
branch: 'main'
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2020 WebFiori Framework
Copyright (c) 2020-present WebFiori Framework

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading