CI (Continuous Integration) පද්ධතියට කේත ගුණාත්මක ගේට් එකක් එක් කිරීමෙන් පසු, කණ්ඩායමේ වැඩපිළිවෙළේ සුළු වෙනසක් සිදුවේ. දැන් කේත ශෛලී ගැටලු සමාලෝචනයේදී සංවාද නොවේ – රොබෝ එකම ඒක නියම කරයි. තවත් වැදගත් කරුණක් නම්, ස්ථාතික විශ්ලේෂණ දෝෂ නිෂ්පාදනයට පෙරම CI හරහා අවහිර වේ.
Code Quality Job එක සෑම push එකකටම ක්රියාත්මක වේ. එය වේගවත් වීම සඳහා දත්ත ගබඩා, මයිග්රේෂන් වැනි වැඩ නොකර, PHP සහ vendor ෆෝල්ඩරය පමණක් භාවිතා කරයි. GitHub Actions භාවිතා කරමින් Ubuntu පද්ධතියේ PHP 8.4 ස්ථාපනය කර, Composer dependencies cache කර, පසුව Laravel Pint මගින් ෆයිල් ශෛලී පරීක්ෂා කර, PHPStan මගින් ස්ථාතික විශ්ලේෂණය සිදු කරයි.
Laravel Pint --test විකල්පය සමඟ පරීක්ෂා කර, ශෛලී ගැටලුවක් හමු වුවහොත් exit code 1 දෙනවා. දෝෂ නොමැති නම්, ./vendor/bin/pint ක්රමය භාවිතා කර ස්වයංක්රීයව සකස් කරගත හැක. PHPStan සඳහා phpstan.neon ෆයිලයක් සකස් කර, level 8 (ඉතා දැඩි) තෝරාගන්න. පරණ කේත පද්ධතියක් නම් level 4 සිට ආරම්භ කර, ක්රමයෙන් ඉහලට ගෙන යන්න.
ශ්රී ලංකාවට ඇති වැදගත්කම
- අධ්යයන ශිෂ්යයන්ට කේත ශෛලී හා type safety ගැන ප්රායෝගික උදාහරණයක් ලැබේ.
- දෙපාර්ශවික සංවර්ධකයින්ට CI තුළ ගුණාත්මක පරීක්ෂණයක් ඇතිවීම නිසා කේතයේ අඩුපාඩු ඉක්මනින් හඳුනාගත හැක.
- ව්යාපාරිකයින්ට කාලය හා සම්පත් ආරක්ෂා කර, පරීක්ෂණ අසාර්ථකවූ කොටස් පමණක් පරීක්ෂා කිරීමෙන් CI පිරිවැය අඩු කරයි.
පරණ කේත පදනමක් සඳහා PHPStan baseline ක්රමය භාවිතා කළ හැක. සියලු පවතින දෝෂ “accepted” ලෙස ලේඛනය කර, අලුත් දෝෂ පමණක් CI එක අසාර්ථක කරයි. ඒ සඳහා phpstan-baseline.neon ෆයිලයක් එකවර ජනනය කර, phpstan.neon ෆයිලයේ includes කොටසේ ඇතුළත් කරයි. පසුකාලීනව පරණ දෝෂ සලකා බැලීමට අවශ්ය නම් baseline නැවත ජනනය කර, එමගින් අවසන් වශයෙන් baseline අවශ්ය නොවෙයි.
CI පරීක්ෂණය සාර්ථක වූ පසු පරීක්ෂණ (tests) පදනම ක්රියාත්මක වේ. මෙයින් අර්ථයක් වන්නේ, කේත ශෛලී හෝ static analysis දෝෂ ඇතිවූ විට පරීක්ෂණය පවා නොදුවා, CI මිනිත්තු ඉතිරි කර ගැනීමයි. මේ ක්රමය පසුගිය සතියකදී සංවර්ධකයින්ගේ පුරුදු බවට පත්වෙයි, එවිට ඔවුන්ට CI එක “ගවේෂණය” නොව, “පූර්ව සූදානම” ලෙස හැඟේ.
ඉදිරියේදී රහස් කී සහ පරිසර විචල්ය (environment variables) කළමනාකරණය ගැන තවත් ලිපියකින් විස්තර කෙරේ. මේ මඟින් ඔබේ CI පද්ධතිය ආරක්ෂිතව, කාර්යක්ෂමව පවත්වාගත හැක.