Add a command to assign release versions to Jira tickets [MAILPOET-1783]
This commit is contained in:
45
RoboFile.php
45
RoboFile.php
@@ -588,6 +588,16 @@ class RoboFile extends \Robo\Tasks {
|
||||
);
|
||||
}
|
||||
|
||||
protected function getReleaseVersionController($project) {
|
||||
require_once './tasks/release/ReleaseVersionController.php';
|
||||
$this->loadEnv();
|
||||
return \MailPoetTasks\Release\ReleaseVersionController::createWithJiraCredentials(
|
||||
getenv('WP_JIRA_TOKEN'),
|
||||
getenv('WP_JIRA_USER'),
|
||||
$project
|
||||
);
|
||||
}
|
||||
|
||||
public function testAcceptanceGroupTests() {
|
||||
return $this->taskSplitTestFilesByGroups(4)
|
||||
->projectRoot('.')
|
||||
@@ -598,10 +608,7 @@ class RoboFile extends \Robo\Tasks {
|
||||
|
||||
public function writeReleaseVersion($version) {
|
||||
$version = trim($version);
|
||||
if (!preg_match('/\d+\.\d+\.\d+/', $version)) {
|
||||
$this->yell('Incorrect version format', 40, 'red');
|
||||
exit(1);
|
||||
}
|
||||
$this->validateVersion($version);
|
||||
|
||||
$this->taskReplaceInFile(__DIR__ . '/readme.txt')
|
||||
->regex('/Stable tag:\s*\d+\.\d+\.\d+/i')
|
||||
@@ -618,4 +625,34 @@ class RoboFile extends \Robo\Tasks {
|
||||
->to(sprintf("'version' => '%s',", $version))
|
||||
->run();
|
||||
}
|
||||
|
||||
public function jiraReleaseVersion($opts = ['free' => null, 'premium' => null]) {
|
||||
require_once './tasks/release/Jira.php';
|
||||
if (empty($opts['free']) && empty($opts['premium'])) {
|
||||
$this->yell('No Free or Premium version specified', 40, 'red');
|
||||
exit(1);
|
||||
}
|
||||
$output = [];
|
||||
if (!empty($opts['free'])) {
|
||||
$this->validateVersion($opts['free']);
|
||||
$output[] = $this->getReleaseVersionController(\MailPoetTasks\Release\Jira::PROJECT_MAILPOET)
|
||||
->assignVersionToCompletedTickets($opts['free']);
|
||||
}
|
||||
if (!empty($opts['premium'])) {
|
||||
$this->validateVersion($opts['premium']);
|
||||
$output[] = $this->getReleaseVersionController(\MailPoetTasks\Release\Jira::PROJECT_PREMIUM)
|
||||
->assignVersionToCompletedTickets($opts['premium']);
|
||||
}
|
||||
if($opts['quiet']) {
|
||||
return;
|
||||
}
|
||||
$this->say(join("\n", $output));
|
||||
}
|
||||
|
||||
private function validateVersion($version) {
|
||||
if (!preg_match('/\d+\.\d+\.\d+/', $version)) {
|
||||
$this->yell('Incorrect version format', 40, 'red');
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user