mirror of
https://github.com/appwrite/appwrite
synced 2026-05-24 09:28:40 +00:00
Merge pull request #10457 from appwrite/pla-3433
feat: automatic pr creation in sdk release script
This commit is contained in:
commit
d3491c2189
1 changed files with 44 additions and 0 deletions
|
|
@ -62,6 +62,9 @@ class SDKs extends Action
|
||||||
$production ??= Console::confirm('Type "Appwrite" to push code to production git repos');
|
$production ??= Console::confirm('Type "Appwrite" to push code to production git repos');
|
||||||
$production = $production === 'Appwrite';
|
$production = $production === 'Appwrite';
|
||||||
$message ??= Console::confirm('Please enter your commit message:');
|
$message ??= Console::confirm('Please enter your commit message:');
|
||||||
|
|
||||||
|
$createPr = Console::confirm('Should we create pull request automatically? (yes/no)');
|
||||||
|
$createPr = $createPr === 'yes';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!\in_array($version, [
|
if (!\in_array($version, [
|
||||||
|
|
@ -315,6 +318,47 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
|
||||||
Console::success("Pushed {$language['name']} SDK to {$gitUrl}");
|
Console::success("Pushed {$language['name']} SDK to {$gitUrl}");
|
||||||
|
|
||||||
|
if ($createPr) {
|
||||||
|
$prTitle = "feat: {$language['name']} SDK update for version {$language['version']}";
|
||||||
|
$prBody = "This PR contains updates to the {$language['name']} SDK for version {$language['version']}.";
|
||||||
|
|
||||||
|
$repoName = $language['gitRepoName'];
|
||||||
|
if (!$production) {
|
||||||
|
$repoName = 'aw-tests/' . $language['gitRepoName'];
|
||||||
|
} else {
|
||||||
|
$repoName = $language['gitUserName'] . '/' . $language['gitRepoName'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Console::info("Creating pull request for {$language['name']} SDK...");
|
||||||
|
|
||||||
|
$prCommand = 'cd ' . $target . ' && \
|
||||||
|
gh pr create \
|
||||||
|
--repo "' . $repoName . '" \
|
||||||
|
--title "' . $prTitle . '" \
|
||||||
|
--body "' . $prBody . '" \
|
||||||
|
--base "' . $repoBranch . '" \
|
||||||
|
--head "' . $gitBranch . '" \
|
||||||
|
2>&1';
|
||||||
|
|
||||||
|
$prOutput = [];
|
||||||
|
$prReturnCode = 0;
|
||||||
|
\exec($prCommand, $prOutput, $prReturnCode);
|
||||||
|
|
||||||
|
if ($prReturnCode === 0) {
|
||||||
|
Console::success("Successfully created pull request for {$language['name']} SDK");
|
||||||
|
if (!empty($prOutput)) {
|
||||||
|
Console::info("PR URL: " . end($prOutput));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$errorMessage = implode("\n", $prOutput);
|
||||||
|
if (strpos($errorMessage, 'already exists') !== false) {
|
||||||
|
Console::warning("Pull request already exists for {$language['name']} SDK");
|
||||||
|
} else {
|
||||||
|
Console::error("Failed to create pull request for {$language['name']} SDK: " . $errorMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
\exec('rm -rf ' . $target);
|
\exec('rm -rf ' . $target);
|
||||||
Console::success("Remove temp directory '{$target}' for {$language['name']} SDK");
|
Console::success("Remove temp directory '{$target}' for {$language['name']} SDK");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue