CI (Continuous Integration) පද්ධතියක් සැකසීමට පළමු පියවර ලෙස බොහෝ Laravel සංවර්ධකයින් SQLite භාවිතා කරනවා. නමුත් MySQL සමඟ පරීක්ෂණ කරන්නේ නම්, GitHub Actions හි MySQL සේවාවක් එක්කරන්න අවශ්ය වේ. මෙහිදී දෝෂයක් නොමැතිව සාර්ථකව පරීක්ෂණ ක්රියාත්මක කිරීමේ සරල ක්රම 3ක් පෙන්වා දෙන්නෙමු.
SQLite නොව MySQL භාවිතා කිරීමේ හේතු – SQLite වේගවත්, සැකසීමට පහසු නමුත් එහි SQL ව්යाकරණය MySQL ට වඩා වෙනස්. උදාහරණයක් ලෙස, string එකතු කිරීමේ ක්රමය (|| vs CONCAT()) සහ දිනයේ ආකෘතිකරණය (strftime() vs DATE_FORMAT()) වෙනස් වේ. ඔබගේ Eloquent query එකක raw SQL ඇතුළත් කරන්නේ නම්, SQLite පරීක්ෂණයේ පසු MySQL හි දෝෂයක් හමුවේ. නිසා, නිෂ්පාදනයේ ගැටළුවක් පෙනෙන්නේ පරීක්ෂණ අවසන් වීමේදී නොව, වාණිජ පරිසරයේදීය.
පියවර 1 – MySQL සේවාව එක් කිරීම ඔබේ api-ci.yml ගොනුවේ services කොටසට MySQL Docker image එක එක්කරන්න. පහත පරිදි image: mysql:8.4 සහ health‑cmd යොදා ගෙන MySQL සකසන තෙක් GitHub Actions රුකඩ නොගන්න.
පියවර 2 – පරීක්ෂණ පරිසරය පුරනය කිරීම GitHub Actions ඔබේ ලෝකල් .env ගොනුව භාවිතා නොකරයි. එබැවින් .env.example පිටපතක් .env.testing ලෙස සකසා, DB_CONNECTION=mysql, DB_HOST=127.0.0.1, DB_PORT=3306 වැනි පරිසර විචල්යයන් එකතු කරන්න. BROADCAST_CONNECTION=log සහ QUEUE_CONNECTION=sync යොදා ගන්නේ CI හි broadcast හෝ queue සේවා අඩුවීම නිසා පරීක්ෂණ අසාර්ථක වීම වැලැක්වීමටය.
පියවර 3 – මයිග්රේෂන් හා පරීක්ෂණ ක්රියාත්මක කිරීම මයිග්රේෂන් පියවරේද, Pest පරීක්ෂණ පියවරේද DB විචල්යයන් නැවත සඳහන් කරන්න, ඒකකයෙන් එක් එක් පියවර නව shell එකක ක්රියා කරන නිසා. මෙය php artisan migrate --env=testing --force සහ ./vendor/bin/pest යන විධාන වලින් සිදු වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්, විශ්වවිද්යාල සිසුන්, සහ තාක්ෂණික ව්යාපාර සඳහා මෙය විශාල ප්රයෝජනවත්. GitHub Actions මගින් MySQL සමඟ පරීක්ෂණ කිරීමෙන්, දේශීය ව්යාපාරයන්ට නිෂ්පාදන පරිසරයට සමීප පරීක්ෂණ පරිසරයක් ලැබේ, එමඟින් බාගත වීමේ ගැටළු හෝ SQL අසමතුලිතතා නිවැරදිව හඳුනාගත හැක. එමෙන්ම, පලපුරුදු නොවන සංවර්ධකයින්ට CI/CD ක්රමවේදය පිළිබඳ අත්හදා බැලීමේ අවස්ථාව ලැබේ, ඒත් ඒක අධික පිරිවැයක් නොවීම නිසා තාක්ෂණික සමාජයේ දක්ෂතාව වැඩි වේ.
අවසන් වශයෙන්, Laravel පරීක්ෂණ MySQL සමඟ සකස් කිරීම සංකීර්ණ නොවේ; YAML ගොනුවේ 20 පේළි කේතයක්, සුළු .env සැකසුම්, සහ මයිග්රේෂන් පියවරක් පමණක් අවශ්ය. මේ අඩු පියවරයන් අනුගමනය කර ඔබේ CI පද්ධතිය තදබල කරගන්න.