Fix manual templates
This commit is contained in:
parent
282f5088db
commit
380dc8a106
6 changed files with 156 additions and 62 deletions
|
@ -80,7 +80,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [],
|
||||
'scopes' => ["users.read"]
|
||||
],
|
||||
|
@ -106,7 +106,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'UPSTASH_URL',
|
||||
|
@ -149,7 +149,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'REDIS_HOST',
|
||||
|
@ -191,7 +191,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'NEO4J_URI',
|
||||
|
@ -242,7 +242,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'MONGO_URI',
|
||||
|
@ -278,7 +278,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'PGHOST',
|
||||
|
@ -362,7 +362,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'OPENAI_API_KEY',
|
||||
|
@ -416,7 +416,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'DISCORD_PUBLIC_KEY',
|
||||
|
@ -466,7 +466,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'PERSPECTIVE_API_KEY',
|
||||
|
@ -513,7 +513,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'PANGEA_REDACT_TOKEN',
|
||||
|
@ -542,7 +542,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => []
|
||||
],
|
||||
[
|
||||
|
@ -568,7 +568,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'GITHUB_TOKEN',
|
||||
|
@ -610,7 +610,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
@ -673,7 +673,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
@ -766,7 +766,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
@ -865,7 +865,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'VONAGE_API_KEY',
|
||||
|
@ -920,7 +920,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'FCM_PROJECT_ID',
|
||||
|
@ -987,7 +987,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'SMTP_HOST',
|
||||
|
@ -1057,7 +1057,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'STRIPE_SECRET_KEY',
|
||||
|
@ -1098,7 +1098,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'STRIPE_SECRET_KEY',
|
||||
|
@ -1155,7 +1155,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'HUGGINGFACE_ACCESS_TOKEN',
|
||||
|
@ -1188,7 +1188,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'HUGGINGFACE_ACCESS_TOKEN',
|
||||
|
@ -1221,7 +1221,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
@ -1279,7 +1279,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
@ -1337,7 +1337,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
@ -1395,7 +1395,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
@ -1453,7 +1453,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'REPLICATE_API_KEY',
|
||||
|
@ -1487,7 +1487,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'TOGETHER_API_KEY',
|
||||
|
@ -1529,7 +1529,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'PERPLEXITY_API_KEY',
|
||||
|
@ -1569,7 +1569,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'REPLICATE_API_KEY',
|
||||
|
@ -1603,7 +1603,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'OPENAI_API_KEY',
|
||||
|
@ -1666,7 +1666,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'OPENAI_API_KEY',
|
||||
|
@ -1729,7 +1729,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'ELEVENLABS_API_KEY',
|
||||
|
@ -1784,7 +1784,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'LMNT_API_KEY',
|
||||
|
@ -1825,7 +1825,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'ANYSCALE_API_KEY',
|
||||
|
@ -1865,7 +1865,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_BUCKET_ID',
|
||||
|
@ -1907,7 +1907,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'FAL_API_KEY',
|
||||
|
@ -1941,7 +1941,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'LEMON_SQUEEZY_API_KEY',
|
||||
|
@ -1996,7 +1996,7 @@ return [
|
|||
'vcsProvider' => 'github',
|
||||
'providerRepositoryId' => 'templates',
|
||||
'providerOwner' => 'appwrite',
|
||||
'providerBranch' => 'main',
|
||||
'providerBranch' => '0.2.*',
|
||||
'variables' => [
|
||||
[
|
||||
'name' => 'APPWRITE_DATABASE_ID',
|
||||
|
|
|
@ -284,9 +284,34 @@ App::post('/v1/functions')
|
|||
|
||||
$function = $dbForProject->updateDocument('functions', $function->getId(), $function);
|
||||
|
||||
// Redeploy vcs logic
|
||||
if (!empty($providerRepositoryId)) {
|
||||
// Deploy VCS
|
||||
$redeployVcs($request, $function, $project, $installation, $dbForProject, $queueForBuilds, $template, $github);
|
||||
} elseif(!$template->isEmpty()) {
|
||||
// Deploy non-VCS from template
|
||||
$deploymentId = ID::unique();
|
||||
$deployment = $dbForProject->createDocument('deployments', new Document([
|
||||
'$id' => $deploymentId,
|
||||
'$permissions' => [
|
||||
Permission::read(Role::any()),
|
||||
Permission::update(Role::any()),
|
||||
Permission::delete(Role::any()),
|
||||
],
|
||||
'resourceId' => $function->getId(),
|
||||
'resourceInternalId' => $function->getInternalId(),
|
||||
'resourceType' => 'functions',
|
||||
'entrypoint' => $function->getAttribute('entrypoint', ''),
|
||||
'commands' => $function->getAttribute('commands', ''),
|
||||
'type' => 'manual',
|
||||
'search' => implode(' ', [$deploymentId, $function->getAttribute('entrypoint', '')]),
|
||||
'activate' => true,
|
||||
]));
|
||||
|
||||
$queueForBuilds
|
||||
->setType(BUILD_TYPE_DEPLOYMENT)
|
||||
->setResource($function)
|
||||
->setDeployment($deployment)
|
||||
->setTemplate($template);
|
||||
}
|
||||
|
||||
$functionsDomain = System::getEnv('_APP_DOMAIN_FUNCTIONS', '');
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
"utopia-php/storage": "0.18.*",
|
||||
"utopia-php/swoole": "0.8.*",
|
||||
"utopia-php/system": "0.8.*",
|
||||
"utopia-php/vcs": "0.7.*",
|
||||
"utopia-php/vcs": "dev-fix-unauthorized-clone as 0.7.99",
|
||||
"utopia-php/websocket": "0.1.*",
|
||||
"matomo/device-detector": "6.1.*",
|
||||
"dragonmantank/cron-expression": "3.3.2",
|
||||
|
|
41
composer.lock
generated
41
composer.lock
generated
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "349cdb39bce652b164706de8b399b911",
|
||||
"content-hash": "15ad1b6580df488ad53dee9760b4edde",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/jwt",
|
||||
|
@ -1721,16 +1721,16 @@
|
|||
},
|
||||
{
|
||||
"name": "utopia-php/database",
|
||||
"version": "0.50.3",
|
||||
"version": "0.50.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/database.git",
|
||||
"reference": "4287e6625c7273411c7322abd151c4285ee7b50f"
|
||||
"reference": "fd3b856be77bd643bc8a9e3572ee11e4185b9230"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/4287e6625c7273411c7322abd151c4285ee7b50f",
|
||||
"reference": "4287e6625c7273411c7322abd151c4285ee7b50f",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/fd3b856be77bd643bc8a9e3572ee11e4185b9230",
|
||||
"reference": "fd3b856be77bd643bc8a9e3572ee11e4185b9230",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1771,9 +1771,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/database/issues",
|
||||
"source": "https://github.com/utopia-php/database/tree/0.50.3"
|
||||
"source": "https://github.com/utopia-php/database/tree/0.50.4"
|
||||
},
|
||||
"time": "2024-08-08T01:40:54+00:00"
|
||||
"time": "2024-08-13T03:18:26+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/domains",
|
||||
|
@ -2758,16 +2758,16 @@
|
|||
},
|
||||
{
|
||||
"name": "utopia-php/vcs",
|
||||
"version": "0.7.0",
|
||||
"version": "dev-fix-unauthorized-clone",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/vcs.git",
|
||||
"reference": "4745fcf385cb8f5b645be447cc1631930853c8af"
|
||||
"reference": "515e796de71982f485aed6b43753ea9eb80c692b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/vcs/zipball/4745fcf385cb8f5b645be447cc1631930853c8af",
|
||||
"reference": "4745fcf385cb8f5b645be447cc1631930853c8af",
|
||||
"url": "https://api.github.com/repos/utopia-php/vcs/zipball/515e796de71982f485aed6b43753ea9eb80c692b",
|
||||
"reference": "515e796de71982f485aed6b43753ea9eb80c692b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -2801,9 +2801,9 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/vcs/issues",
|
||||
"source": "https://github.com/utopia-php/vcs/tree/0.7.0"
|
||||
"source": "https://github.com/utopia-php/vcs/tree/fix-unauthorized-clone"
|
||||
},
|
||||
"time": "2024-06-26T09:44:52+00:00"
|
||||
"time": "2024-08-13T10:33:07+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/websocket",
|
||||
|
@ -5591,9 +5591,18 @@
|
|||
"time": "2023-11-21T18:54:41+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
"aliases": [
|
||||
{
|
||||
"package": "utopia-php/vcs",
|
||||
"version": "dev-fix-unauthorized-clone",
|
||||
"alias": "0.7.99",
|
||||
"alias_normalized": "0.7.99.0"
|
||||
}
|
||||
],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"stability-flags": {
|
||||
"utopia-php/vcs": 20
|
||||
},
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
|
@ -5617,5 +5626,5 @@
|
|||
"platform-overrides": {
|
||||
"php": "8.3"
|
||||
},
|
||||
"plugin-api-version": "2.3.0"
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
|
|
|
@ -195,7 +195,7 @@ services:
|
|||
appwrite-console:
|
||||
<<: *x-logging
|
||||
container_name: appwrite-console
|
||||
image: appwrite/console:5.0.0-rc14
|
||||
image: appwrite/console:5.0.0-dev1
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- appwrite
|
||||
|
|
|
@ -207,7 +207,66 @@ class Builds extends Action
|
|||
}
|
||||
|
||||
try {
|
||||
if ($isNewBuild && $isVcsEnabled) {
|
||||
if($isNewBuild && !$isVcsEnabled) {
|
||||
// Non-vcs+Template
|
||||
|
||||
$templateRepositoryName = $template->getAttribute('repositoryName', '');
|
||||
$templateOwnerName = $template->getAttribute('ownerName', '');
|
||||
$templateBranch = $template->getAttribute('branch', '');
|
||||
|
||||
$templateRootDirectory = $template->getAttribute('rootDirectory', '');
|
||||
$templateRootDirectory = \rtrim($templateRootDirectory, '/');
|
||||
$templateRootDirectory = \ltrim($templateRootDirectory, '.');
|
||||
$templateRootDirectory = \ltrim($templateRootDirectory, '/');
|
||||
|
||||
if (!empty($templateRepositoryName) && !empty($templateOwnerName) && !empty($templateBranch)) {
|
||||
$stdout = '';
|
||||
$stderr = '';
|
||||
|
||||
// Clone template repo
|
||||
$tmpTemplateDirectory = '/tmp/builds/' . \escapeshellcmd($buildId) . '-template';
|
||||
$gitCloneCommandForTemplate = $github->generateCloneCommand($templateOwnerName, $templateRepositoryName, $templateBranch, GitHub::CLONE_TYPE_TAG, $tmpTemplateDirectory, $templateRootDirectory);
|
||||
$exit = Console::execute($gitCloneCommandForTemplate, '', $stdout, $stderr);
|
||||
|
||||
if ($exit !== 0) {
|
||||
throw new \Exception('Unable to clone code repository: ' . $stderr);
|
||||
}
|
||||
|
||||
// Ensure directories
|
||||
Console::execute('mkdir -p ' . $tmpTemplateDirectory . '/' . $templateRootDirectory, '', $stdout, $stderr);
|
||||
|
||||
$tmpPathFile = $tmpTemplateDirectory . '/code.tar.gz';
|
||||
|
||||
$localDevice = new Local();
|
||||
|
||||
if (substr($tmpTemplateDirectory, -1) !== '/') {
|
||||
$tmpTemplateDirectory .= '/';
|
||||
}
|
||||
|
||||
$directorySize = $localDevice->getDirectorySize($tmpTemplateDirectory);
|
||||
$functionsSizeLimit = (int)System::getEnv('_APP_FUNCTIONS_SIZE_LIMIT', '30000000');
|
||||
if ($directorySize > $functionsSizeLimit) {
|
||||
throw new \Exception('Repository directory size should be less than ' . number_format($functionsSizeLimit / 1048576, 2) . ' MBs.');
|
||||
}
|
||||
|
||||
Console::execute('tar --exclude code.tar.gz -czf ' . $tmpPathFile . ' -C /tmp/builds/' . \escapeshellcmd($buildId) . '-template' . (empty($templateRootDirectory) ? '' : '/' . $templateRootDirectory) . ' .', '', $stdout, $stderr);
|
||||
|
||||
$path = $deviceForFunctions->getPath($deployment->getId() . '.' . \pathinfo('code.tar.gz', PATHINFO_EXTENSION));
|
||||
$result = $localDevice->transfer($tmpPathFile, $path, $deviceForFunctions);
|
||||
|
||||
if (!$result) {
|
||||
throw new \Exception("Unable to move file");
|
||||
}
|
||||
|
||||
Console::execute('rm -rf ' . $tmpTemplateDirectory, '', $stdout, $stderr);
|
||||
|
||||
$source = $path;
|
||||
|
||||
$build = $dbForProject->updateDocument('builds', $build->getId(), $build->setAttribute('source', $source));
|
||||
$deployment = $dbForProject->updateDocument('deployments', $deployment->getId(), $deployment->setAttribute('path', $source));
|
||||
}
|
||||
} elseif ($isNewBuild && $isVcsEnabled) {
|
||||
// VCS and VCS+Temaplte
|
||||
$tmpDirectory = '/tmp/builds/' . $buildId . '/code';
|
||||
$rootDirectory = $function->getAttribute('providerRootDirectory', '');
|
||||
$rootDirectory = \rtrim($rootDirectory, '/');
|
||||
|
@ -222,7 +281,8 @@ class Builds extends Action
|
|||
|
||||
$branchName = $deployment->getAttribute('providerBranch');
|
||||
$commitHash = $deployment->getAttribute('providerCommitHash', '');
|
||||
$gitCloneCommand = $github->generateCloneCommand($cloneOwner, $cloneRepository, $branchName, $tmpDirectory, $rootDirectory . '/*', $commitHash);
|
||||
|
||||
$gitCloneCommandForTemplate = $github->generateCloneCommand($cloneOwner, $cloneRepository, $commitHash, GitHub::CLONE_TYPE_COMMIT, $tmpDirectory, $rootDirectory . '/*');
|
||||
|
||||
$stdout = '';
|
||||
$stderr = '';
|
||||
|
@ -233,7 +293,7 @@ class Builds extends Action
|
|||
return;
|
||||
}
|
||||
|
||||
$exit = Console::execute($gitCloneCommand, '', $stdout, $stderr);
|
||||
$exit = Console::execute($gitCloneCommandForTemplate, '', $stdout, $stderr);
|
||||
|
||||
if ($exit !== 0) {
|
||||
throw new \Exception('Unable to clone code repository: ' . $stderr);
|
||||
|
@ -266,7 +326,7 @@ class Builds extends Action
|
|||
if (!empty($templateRepositoryName) && !empty($templateOwnerName) && !empty($templateBranch)) {
|
||||
// Clone template repo
|
||||
$tmpTemplateDirectory = '/tmp/builds/' . \escapeshellcmd($buildId) . '/template';
|
||||
$gitCloneCommandForTemplate = $github->generateCloneCommand($templateOwnerName, $templateRepositoryName, $templateBranch, $tmpTemplateDirectory, $templateRootDirectory);
|
||||
$gitCloneCommandForTemplate = $github->generateCloneCommand($templateOwnerName, $templateRepositoryName, $templateBranch, GitHub::CLONE_TYPE_TAG, $tmpTemplateDirectory, $templateRootDirectory);
|
||||
$exit = Console::execute($gitCloneCommandForTemplate, '', $stdout, $stderr);
|
||||
|
||||
if ($exit !== 0) {
|
||||
|
|
Loading…
Reference in a new issue