Esempio n. 1
0
 public static function setUpBeforeClass()
 {
     $oldCwd = getcwd();
     self::$gitRepo = sys_get_temp_dir() . '/composer-git-' . rand() . '/';
     $locator = new ExecutableFinder();
     if (!$locator->find('git')) {
         self::$skipped = 'This test needs a git binary in the PATH to be able to run';
         return;
     }
     if (!mkdir(self::$gitRepo) || !chdir(self::$gitRepo)) {
         self::$skipped = 'Could not create and move into the temp git repo ' . self::$gitRepo;
         return;
     }
     // init
     $process = new ProcessExecutor();
     $process->execute('git init', $null);
     touch('foo');
     $process->execute('git add foo', $null);
     $process->execute('git commit -m init', $null);
     // non-composed tag & branch
     $process->execute('git tag 0.5.0', $null);
     $process->execute('git branch oldbranch', $null);
     // add composed tag & master branch
     $composer = array('name' => 'a/b');
     file_put_contents('composer.json', json_encode($composer));
     $process->execute('git add composer.json', $null);
     $process->execute('git commit -m addcomposer', $null);
     $process->execute('git tag 0.6.0', $null);
     // add feature-a branch
     $process->execute('git checkout -b feature-a', $null);
     file_put_contents('foo', 'bar feature');
     $process->execute('git add foo', $null);
     $process->execute('git commit -m change-a', $null);
     // add version to composer.json
     $process->execute('git checkout master', $null);
     $composer['version'] = '1.0.0';
     file_put_contents('composer.json', json_encode($composer));
     $process->execute('git add composer.json', $null);
     $process->execute('git commit -m addversion', $null);
     // create tag with wrong version in it
     $process->execute('git tag 0.9.0', $null);
     // create tag with correct version in it
     $process->execute('git tag 1.0.0', $null);
     // add feature-b branch
     $process->execute('git checkout -b feature-b', $null);
     file_put_contents('foo', 'baz feature');
     $process->execute('git add foo', $null);
     $process->execute('git commit -m change-b', $null);
     // add 1.0 branch
     $process->execute('git checkout master', $null);
     $process->execute('git branch 1.0', $null);
     // add 1.0.x branch
     $process->execute('git branch 1.1.x', $null);
     // update master to 2.0
     $composer['version'] = '2.0.0';
     file_put_contents('composer.json', json_encode($composer));
     $process->execute('git add composer.json', $null);
     $process->execute('git commit -m bump-version', $null);
     chdir($oldCwd);
 }
 protected function initialize()
 {
     $oldCwd = getcwd();
     self::$gitRepo = sys_get_temp_dir() . '/composer-git-' . mt_rand() . '/';
     $locator = new ExecutableFinder();
     if (!$locator->find('git')) {
         $this->skipped = 'This test needs a git binary in the PATH to be able to run';
         return;
     }
     if (!@mkdir(self::$gitRepo) || !@chdir(self::$gitRepo)) {
         $this->skipped = 'Could not create and move into the temp git repo ' . self::$gitRepo;
         return;
     }
     // init
     $process = new ProcessExecutor();
     $exec = function ($command) use($process) {
         $cwd = getcwd();
         if ($process->execute($command, $output, $cwd) !== 0) {
             throw new \RuntimeException('Failed to execute ' . $command . ': ' . $process->getErrorOutput());
         }
     };
     $exec('git init');
     $exec('git config user.email composertest@example.org');
     $exec('git config user.name ComposerTest');
     touch('foo');
     $exec('git add foo');
     $exec('git commit -m init');
     // non-composed tag & branch
     $exec('git tag 0.5.0');
     $exec('git branch oldbranch');
     // add composed tag & master branch
     $composer = array('name' => 'a/b');
     file_put_contents('composer.json', json_encode($composer));
     $exec('git add composer.json');
     $exec('git commit -m addcomposer');
     $exec('git tag 0.6.0');
     // add feature-a branch
     $exec('git checkout -b feature/a-1.0-B');
     file_put_contents('foo', 'bar feature');
     $exec('git add foo');
     $exec('git commit -m change-a');
     // add version to composer.json
     $exec('git checkout master');
     $composer['version'] = '1.0.0';
     file_put_contents('composer.json', json_encode($composer));
     $exec('git add composer.json');
     $exec('git commit -m addversion');
     // create tag with wrong version in it
     $exec('git tag 0.9.0');
     // create tag with correct version in it
     $exec('git tag 1.0.0');
     // add feature-b branch
     $exec('git checkout -b feature-b');
     file_put_contents('foo', 'baz feature');
     $exec('git add foo');
     $exec('git commit -m change-b');
     // add 1.0 branch
     $exec('git checkout master');
     $exec('git branch 1.0');
     // add 1.0.x branch
     $exec('git branch 1.1.x');
     // update master to 2.0
     $composer['version'] = '2.0.0';
     file_put_contents('composer.json', json_encode($composer));
     $exec('git add composer.json');
     $exec('git commit -m bump-version');
     chdir($oldCwd);
 }