<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="lt">
	<id>https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Gitlab_php_tikrinimo_botas</id>
	<title>Gitlab php tikrinimo botas - Versijų istorija</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eofnet.lt/w//index.php?action=history&amp;feed=atom&amp;title=Gitlab_php_tikrinimo_botas"/>
	<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Gitlab_php_tikrinimo_botas&amp;action=history"/>
	<updated>2026-04-15T15:02:08Z</updated>
	<subtitle>Šio puslapio versijų istorija projekte</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.eofnet.lt/w//index.php?title=Gitlab_php_tikrinimo_botas&amp;diff=8223&amp;oldid=prev</id>
		<title>\dev\null 10:37, 28 vasario 2017</title>
		<link rel="alternate" type="text/html" href="https://wiki.eofnet.lt/w//index.php?title=Gitlab_php_tikrinimo_botas&amp;diff=8223&amp;oldid=prev"/>
		<updated>2017-02-28T10:37:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Naujas puslapis&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Praeitame straipsnyje rašiau kaip automatizuoti [[Gitlab windows runner|C# projektų kompiliavimus]]. Šiame, aprašysiu kaip patikrinti [[PHP]] kodą su skirtingomis [[PHP]] versijomis. Naudosime standartinį [[PHP]] v5.6 ir naujajį [[PHP]] 7.&lt;br /&gt;
&lt;br /&gt;
== Nutolusios sistemos paruošimas ==&lt;br /&gt;
Nutolusioje [[Linux]] sistemoje kurioje norime paleisti [[PHP Unit Testavimas|PHP unit testavimą]], reikės pasiruošti [[gitlab-multi-runner]], [[php]] naudosime [[docker|dockeriuose]] (kuriuose bus skirtingos php versijos). Pirmiausia reiktų susidiegti [[gitlab-multi-runner|multi-runner]]:&lt;br /&gt;
 # Debian/Ubuntu&lt;br /&gt;
 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash&lt;br /&gt;
 # CentOS &lt;br /&gt;
 curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash&lt;br /&gt;
 # Debian/Ubuntu&lt;br /&gt;
 sudo apt-get install gitlab-ci-multi-runner&lt;br /&gt;
 # CentOS&lt;br /&gt;
 sudo yum install gitlab-ci-multi-runner&lt;br /&gt;
== Registruojame runnerį savame gitlab'e ==&lt;br /&gt;
 sudo gitlab-ci-multi-runner register&lt;br /&gt;
 Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci )&lt;br /&gt;
 https://gitlab.lt/ci&lt;br /&gt;
 Please enter the gitlab-ci token for this runner&lt;br /&gt;
 xxx&lt;br /&gt;
 Please enter the gitlab-ci description for this runner&lt;br /&gt;
 PHP Testavimas&lt;br /&gt;
 INFO[0034] fcf5c619 Registering runner... succeeded&lt;br /&gt;
 Please enter the executor: shell, docker, docker-ssh, ssh?&lt;br /&gt;
 docker&lt;br /&gt;
 Please enter the Docker image (eg. ruby:2.1):&lt;br /&gt;
 php:5.6&lt;br /&gt;
 INFO[0037] Runner registered successfully. Feel free to start it, but if it's&lt;br /&gt;
 running already the config should be automatically reloaded!&lt;br /&gt;
= PHP Unit testavimas =&lt;br /&gt;
== Projekto pasiruošimas ==&lt;br /&gt;
Šioje skiltyje aprašytas pačio projekto (kuris bus testuojamas) paruošimas, taisyklių aprašymas ir t.t. Pagal ką vyks testasvimas. Pirmiausia mums reikia atsidaryti terminalą arba tiesiog to projekto katalogą. &lt;br /&gt;
&lt;br /&gt;
=== Padarome scriptą kuris paruoš docker konteinerį nutolusiame serveryje ===&lt;br /&gt;
Sukuriame katalogą '''ci''' ir jame įrašome failą '''docker_install.sh''' su šiais viduriais:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# Diegiame tiktai priklausomybes reikalingas mūsų dockeriui&lt;br /&gt;
[[ ! -e /.dockerenv ]] &amp;amp;&amp;amp; [[ ! -e /.dockerinit ]] &amp;amp;&amp;amp; exit 0&lt;br /&gt;
&lt;br /&gt;
set -xe&lt;br /&gt;
&lt;br /&gt;
# Įdiegiame git (php dockerio atvaizdas jo neturi)&lt;br /&gt;
apt-get update -yqq&lt;br /&gt;
apt-get install git -yqq&lt;br /&gt;
&lt;br /&gt;
# Įdiegiame phpunit, įrankį kurį naudosime php testavimui&lt;br /&gt;
curl --location --output /usr/local/bin/phpunit https://phar.phpunit.de/phpunit.phar&lt;br /&gt;
chmod +x /usr/local/bin/phpunit&lt;br /&gt;
&lt;br /&gt;
# Sudiegiame mysql draiverį ir kitus reikalingus php modulius&lt;br /&gt;
docker-php-ext-install pdo_mysql mysqli&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Kaip jau supratote pabaigoje scripto yra nurodoma kuriuos [[PHP moduliai|PHP modulius]] turi įdiegti scriptas (kurių reikalauja jūsų projektas).&lt;br /&gt;
&lt;br /&gt;
=== Gitlab roboto taisyklių failas ===&lt;br /&gt;
Čia aprašysime taisykles kaip turėtų būti testuojamas [[PHP]] kodas. Failą išsaugome kaip '''.gitlab-ci.yml'''&lt;br /&gt;
 before_script:&lt;br /&gt;
  - bash ci/docker_install.sh &amp;gt; /dev/null&lt;br /&gt;
 test:5.6:&lt;br /&gt;
   image: php:5.6&lt;br /&gt;
   script:&lt;br /&gt;
   - phpunit --configuration phpunit.xml&lt;br /&gt;
 test:7.0:&lt;br /&gt;
   image: php:7.0&lt;br /&gt;
   script:&lt;br /&gt;
   - phpunit --configuration phpunit.xml&lt;br /&gt;
'''Trumpas aprašymas:''' Šios taisyklės aprašo kaip turėtų elgtis robotas inicijuojantis [[PHP]] kodo testavimą, kaip paruošti sistemą, kokias komandas vykdyti ir t.t. &lt;br /&gt;
&lt;br /&gt;
=== PHP Tikrinimo failo taisyklių aprašymas ===&lt;br /&gt;
Čia aprašysime kaip konkrečiai turetų būti testuojamas [[PHP]] kodas, su juo susiję moduliai bei struktūra. '''phpunit.xml''':&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;phpunit bootstrap=&amp;quot;functions.php&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;testsuites&amp;gt;&lt;br /&gt;
    &amp;lt;testsuite name=&amp;quot;project backend test&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;file&amp;gt;query.php&amp;lt;/file&amp;gt;&lt;br /&gt;
      &amp;lt;file&amp;gt;ins.php&amp;lt;/file&amp;gt;&lt;br /&gt;
      &amp;lt;file&amp;gt;auth.php&amp;lt;/file&amp;gt;&lt;br /&gt;
    &amp;lt;/testsuite&amp;gt;&lt;br /&gt;
  &amp;lt;/testsuites&amp;gt;&lt;br /&gt;
&amp;lt;/phpunit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Taisyklės kaip teisingai aprašyti šį failą [https://phpunit.de/manual/current/en/appendixes.configuration.html pakavotos čia]. &lt;br /&gt;
Kitas pavyzdys.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;phpunit bootstrap=&amp;quot;Tests/bootstrap.php&amp;quot; colors=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;php&amp;gt;&lt;br /&gt;
        &amp;lt;var name=&amp;quot;db_dsn&amp;quot; value=&amp;quot;mysql:dbname=hello_world_test;host=localhost&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;var name=&amp;quot;db_username&amp;quot; value=&amp;quot;root&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;var name=&amp;quot;db_password&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;testsuites&amp;gt;&lt;br /&gt;
        &amp;lt;testsuite name=&amp;quot;Hello World Test Suite&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;directory&amp;gt;./Tests/&amp;lt;/directory&amp;gt;&lt;br /&gt;
        &amp;lt;/testsuite&amp;gt;&lt;br /&gt;
    &amp;lt;/testsuites&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;filter&amp;gt;&lt;br /&gt;
        &amp;lt;whitelist&amp;gt;&lt;br /&gt;
            &amp;lt;directory&amp;gt;./&amp;lt;/directory&amp;gt;&lt;br /&gt;
            &amp;lt;exclude&amp;gt;&lt;br /&gt;
                &amp;lt;directory&amp;gt;./Tests&amp;lt;/directory&amp;gt;&lt;br /&gt;
            &amp;lt;/exclude&amp;gt;&lt;br /&gt;
        &amp;lt;/whitelist&amp;gt;&lt;br /&gt;
    &amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/phpunit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Dar kitas pavyzdys:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;phpunit bootstrap=&amp;quot;Tests/bootstrap.php&amp;quot; colors=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;php&amp;gt;&lt;br /&gt;
        &amp;lt;var name=&amp;quot;db_dsn&amp;quot; value=&amp;quot;pgsql:dbname=hello_world_test;host=localhost&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;var name=&amp;quot;db_username&amp;quot; value=&amp;quot;postgres&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;var name=&amp;quot;db_password&amp;quot; value=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/php&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;testsuites&amp;gt;&lt;br /&gt;
        &amp;lt;testsuite name=&amp;quot;Hello World Test Suite&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;directory&amp;gt;./Tests/&amp;lt;/directory&amp;gt;&lt;br /&gt;
        &amp;lt;/testsuite&amp;gt;&lt;br /&gt;
    &amp;lt;/testsuites&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;filter&amp;gt;&lt;br /&gt;
        &amp;lt;whitelist&amp;gt;&lt;br /&gt;
            &amp;lt;directory&amp;gt;./&amp;lt;/directory&amp;gt;&lt;br /&gt;
            &amp;lt;exclude&amp;gt;&lt;br /&gt;
                &amp;lt;directory&amp;gt;./Tests&amp;lt;/directory&amp;gt;&lt;br /&gt;
            &amp;lt;/exclude&amp;gt;&lt;br /&gt;
        &amp;lt;/whitelist&amp;gt;&lt;br /&gt;
    &amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;/phpunit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[PHP]] Kodo pavyzdžiai [https://github.com/travis-ci-examples/php sudėti čia].&lt;br /&gt;
= PHP 7 Compatibility Checker =&lt;br /&gt;
Šio boto pagalba kodas gali būti pratestuotas prieš [[php7]] palaikyma, t.y patikrina kodo suderinamumą su naująja [[php]] versija.&lt;br /&gt;
== Pasiruošimas ==&lt;br /&gt;
Šioje skiltyje aprašytas pačio projekto (kuris bus testuojamas) paruošimas, taisyklių aprašymas ir t.t. Pagal ką vyks testasvimas. Pirmiausia mums reikia atsidaryti terminalą arba tiesiog to projekto katalogą. &lt;br /&gt;
&lt;br /&gt;
=== Padarome scriptą kuris paruoš docker konteinerį nutolusiame serveryje ===&lt;br /&gt;
Sukuriame katalogą '''ci''' ir jame įrašome failą '''docker_install.sh''' su šiais viduriais:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
[[ ! -e /.dockerenv ]] &amp;amp;&amp;amp; [[ ! -e /.dockerinit ]] &amp;amp;&amp;amp; exit 0&lt;br /&gt;
set -xe&lt;br /&gt;
apt-get update -yqq&lt;br /&gt;
apt-get install git curl zip unzip -yqq&lt;br /&gt;
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \&lt;br /&gt;
    &amp;amp;&amp;amp; chmod +x /usr/local/bin/composer \&lt;br /&gt;
    &amp;amp;&amp;amp; echo &amp;quot;date.timezone = Europe/Vilnius&amp;quot; &amp;gt;&amp;gt; /usr/local/etc/php/conf.d/symfony.ini \&lt;br /&gt;
    &amp;amp;&amp;amp; composer global require sstalle/php7cc&lt;br /&gt;
composer global require sstalle/php7cc&lt;br /&gt;
echo &amp;quot;php -d memory_limit=2G /root/.composer/vendor/bin/php7cc \&amp;quot;\$@\&amp;quot;&amp;quot; &amp;gt; /usr/local/bin/php7cc&lt;br /&gt;
chmod +x /usr/local/bin/php7cc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Gitlab roboto taisyklių failas ===&lt;br /&gt;
Čia aprašysime taisykles kuris [[PHP]] kodas turėtų būti testuojamas. Failą išsaugome kaip '''.gitlab-ci.yml''' projekto kataloge.&lt;br /&gt;
 before_script:&lt;br /&gt;
 - bash ci/docker_install.sh &amp;gt; /dev/null&lt;br /&gt;
 test:5.6:&lt;br /&gt;
   image: php:5.6&lt;br /&gt;
   script:&lt;br /&gt;
   - php7cc system/&lt;br /&gt;
Taip pat galime naudoti pranešimo lygmenis pvz.: --level=error, daugiau [https://github.com/sstalle/php7cc info čia].&lt;br /&gt;
&lt;br /&gt;
'''Trumpas aprašymas:''' Šios taisyklės aprašo kaip turėtų elgtis robotas inicijuojantis [[PHP]] kodo testavimą, kaip paruošti sistemą, kokias komandas vykdyti ir t.t. Kadangi php7cc biblioteka nereikalauja php7 versijos įdiegtos sistemoje, naudosime senesnę php5.6.&lt;br /&gt;
[[Category:Programavimas]]&lt;br /&gt;
[[Category:Git]]&lt;br /&gt;
[[Category:Gitlab]]&lt;/div&gt;</summary>
		<author><name>\dev\null</name></author>
	</entry>
</feed>