Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $pr = $this->getAdapter()->getPullRequest($input->getArgument('pr_number'));
     $sourceOrg = $pr['head']['user'];
     $branchName = $pr['head']['ref'];
     /** @var GitConfigHelper $gitConfigHelper */
     $gitConfigHelper = $this->getHelper('git_config');
     $gitConfigHelper->ensureRemoteExists($sourceOrg, $pr['head']['repo']);
     /** @var GitHelper $gitHelper */
     $gitHelper = $this->getHelper('git');
     $gitHelper->remoteUpdate($sourceOrg);
     $lastTag = $gitHelper->getLastTagOnBranch($sourceOrg . '/' . $branchName);
     if (empty($lastTag)) {
         $lastTag = '0.0.0';
     }
     // adjust case for format v2.3
     $lastTag = ltrim($lastTag, 'v');
     $builder = Parser::toBuilder($lastTag);
     switch (true) {
         case $input->getOption('major'):
             $builder->incrementMajor();
             break;
         case $input->getOption('minor'):
             $builder->incrementMinor();
             break;
         case $input->getOption('patch'):
             $builder->incrementPatch();
             break;
         default:
             $builder->incrementPatch();
             break;
     }
     $output->writeln(Dumper::toString($builder->getVersion()));
     return self::COMMAND_SUCCESS;
 }
Exemplo n.º 2
0
 /**
  * {@inheritDoc}
  */
 public function run(OutputInterface $output)
 {
     $baseBranch = $this->getParameter('base_branch');
     $release = $this->getParameter('release');
     $this->runGit($output, ['git', 'checkout', $baseBranch]);
     $lastTag = $this->runCommand(['git', 'describe', '--tags', '--abbrev=0', 'HEAD']);
     $builder = Parser::toBuilder($lastTag);
     switch (true) {
         case 'major' === $release:
             $builder->incrementMajor();
             break;
         case 'minor' === $release:
             $builder->incrementMinor();
             break;
         case 'patch' === $release:
             $builder->incrementPatch();
             break;
         default:
             $builder->incrementPatch();
             break;
     }
     $newNumber = Dumper::toString($builder->getVersion());
     $this->runGit($output, ['git', 'tag', '-a', $newNumber, '-m', 'auto tagged']);
     $this->runGit($output, ['git', 'push', '--tags']);
 }
Exemplo n.º 3
0
 public function testToBuilder()
 {
     $builder = Parser::toBuilder('1.2.3-pre.1+build.1');
     $this->assertSame(1, $builder->getMajor());
     $this->assertSame(2, $builder->getMinor());
     $this->assertSame(3, $builder->getPatch());
     $this->assertSame(array('pre', '1'), $builder->getPreRelease());
     $this->assertSame(array('build', '1'), $builder->getBuild());
 }
 /**
  * @throws \RuntimeException
  * @return Version
  */
 public function getVersion()
 {
     $semVersionRegex = substr(Validator::VERSION_REGEX, 2, -2);
     $describeRegex = sprintf(self::DESCRIBE_REGEX, $semVersionRegex);
     $version = $this->getGitDescribe();
     if (!preg_match($describeRegex, $version, $matches)) {
         throw new \RuntimeException($this->getName() . " describe returned no valid version");
     }
     $builder = Parser::toBuilder($matches[1]);
     $this->handleMetaData($builder, $matches);
     return $builder->getVersion();
 }
Exemplo n.º 5
0
 /**
  * Will init the instance of our core class
  *
  * @return null
  */
 protected function init()
 {
     $this->baseVersion = Parser::toBuilder('1.0.0');
     $this->inspector = new DefaultInspector();
     $this->cache = new Cache();
 }
Exemplo n.º 6
0
 /**
  * Increment the patch version
  *
  * @param string $version
  * @return string
  */
 private function incrementVersion($version)
 {
     $builder = Version\Parser::toBuilder($version);
     $builder->incrementPatch();
     return Version\Dumper::toString($builder->getVersion());
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $kernelRoot = $this->getContainer()->getParameter('kernel.root_dir');
     $file = $this->getContainer()->getParameter('shivas_versioning.version_file');
     $param = $this->getContainer()->getParameter('shivas_versioning.version_parameter');
     $paramFile = "{$kernelRoot}/config/{$file}";
     /** @var VersionsManager $manager */
     $manager = $this->getContainer()->get('shivas_versioning.manager');
     if ($input->getOption('list-handlers')) {
         $this->listHandlers($manager, $output);
         return;
     }
     if ($input->getArgument('version') === null) {
         $version = $manager->getVersion();
         if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE) {
             $output->writeln(sprintf('Handler: <comment>%s</comment>', $manager->getActiveHandler()->getName()));
         }
         $builder = VersionParser::toBuilder(Dumper::toString($version));
         if ($input->getOption('major') > 0) {
             $builder->incrementMajor(intval($input->getOption('major')));
         }
         if ($input->getOption('minor') > 0) {
             $builder->incrementMinor(intval($input->getOption('minor')));
         }
         if ($input->getOption('patch') > 0) {
             $builder->incrementPatch(intval($input->getOption('patch')));
         }
         if ($input->getOption('prerelease')) {
             $preRelease = $input->getOption('prerelease');
             if (in_array(null, $preRelease)) {
                 $preRelease = array();
             }
             $builder->setPreRelease($preRelease);
         }
         if ($input->getOption('build')) {
             $build = $input->getOption('build');
             if (in_array(null, $build)) {
                 $build = array();
             }
             $builder->setBuild($build);
         }
         $version = $builder->getVersion();
     } else {
         $version = VersionParser::toVersion($input->getArgument('version'));
     }
     if (!$input->getOption('dry-run')) {
         if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
             $output->writeln(sprintf('Updating parameters file with version number: <info>%s</info>', Dumper::toString($version)));
         } else {
             $output->writeln(Dumper::toString($version));
         }
         if (!file_exists($paramFile)) {
             $this->createParametersFile($version, $paramFile, $param);
         } else {
             $this->updateParametersFile($version, $paramFile, $param);
         }
     } else {
         if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
             $output->writeln(sprintf('Version: <comment>%s</comment>', Dumper::toString($version)));
         } else {
             $output->writeln(Dumper::toString($version));
         }
     }
 }