/** * {@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; }
/** * {@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']); }
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(); }
/** * 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(); }
/** * 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)); } } }