Posted on

How to build a branch of git repository on remote server

We need:

  1. Apache
  2. PHP

The main page of site 🙂

<html>
<head>
<LINK REL="stylesheet" href="" type="text/css">
<title>builder</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"/>
</head>
<body>
<?php
$res = shell_exec("tasklist");
if (preg_match('/^git\.exe/im', $res) || preg_match('/^dcc32\.exe/im', $res))
{echo '<p>Oops, building... Come back later.</p>';}
else
{
echo "<p>Hello dear programmer.<br>I hope you've finished developing of branch and want to test it<br>Please enter the name of the branch and click button 'Build branch'</p>";
echo '<form name="buildbranchXE" method="POST" action="/buildbranch.php"><input type="text" name="branchname" value="" /><input type="submit" value="Build branch" /></form>';
}
?>
</body>
</html>

File buildbranch.php

<?php
$res = shell_exec("tasklist");
if (preg_match('/^git\.exe/im', $res) || preg_match('/^dcc32\.exe/im', $res))
{
echo '<p>Oops, building... Come back later.</p>';
}
else
{
$brname=$_POST["branchname"];
if (!isset($brname) || empty($brname)) {header('Location: /error.html');exit();}
$r = exec("start /B cmd /c c:\cron\git-check-branch.bat ".$brname);
if (strcasecmp(trim($r), trim("origin/".$brname)) == 0)
{
pclose(popen("start /B cmd.exe /c c:\cron\git-branch.bat ".$brname, "r"));
echo '<p>Building...</p>';
}
else
{echo 'The branch does not exist';}
}
?>

File git-check-branch.bat

cd c:\repo
git branch --list -r | grep origin/%1

File git-branch.bat execute building of application

Leave a Reply

Your email address will not be published. Required fields are marked *