diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bff77612f1..7e8b936293 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,9 +1,10 @@ name: "Tests" + on: [pull_request] jobs: tests: name: Unit & E2E - runs-on: ubuntu-latest + runs-on: self-hosted steps: - name: Checkout repository @@ -18,29 +19,16 @@ jobs: - run: git checkout HEAD^2 if: ${{ github.event_name == 'pull_request' }} - - name: Prepare Docker + - name: Build Appwrite + # Upstream bug causes buildkit pulls to fail so prefetch base images + # https://github.com/moby/moby/issues/41864 run: | - export COMPOSE_INTERACTIVE_NO_CLI - export DOCKER_BUILDKIT=1 - export COMPOSE_DOCKER_CLI_BUILD=1 echo "_APP_FUNCTIONS_RUNTIMES=php-8.0" >> .env docker pull composer:2.0 docker pull php:8.0-cli-alpine - docker compose pull - - - name: Prepare Cache - uses: satackey/action-docker-layer-caching@v0.0.11 - # Ignore the failure of a step and avoid terminating the job. - continue-on-error: true - - - name: Build Appwrite - run: docker compose build --progress=plain - - - name: Start Appwrite - run: | + docker compose build --progress=plain docker compose up -d - sleep 30 - + sleep 10 - name: Doctor run: docker compose exec -T appwrite doctor @@ -49,3 +37,9 @@ jobs: - name: Run Tests run: docker compose exec -T appwrite test --debug + + - name: Teardown + if: always() + run: | + docker compose down -v + docker ps -aq | xargs docker rm --force \ No newline at end of file diff --git a/app/config/variables.php b/app/config/variables.php index 28686193fb..bdcbc936ea 100644 --- a/app/config/variables.php +++ b/app/config/variables.php @@ -422,7 +422,7 @@ return [ ], [ 'name' => '_APP_STORAGE_DEVICE', - 'description' => 'Select default storage device. The default value is \'Local\'. List of supported adapters are \'Local\', \'S3\' and \'DoSpaces\'.', + 'description' => 'Select default storage device. The default value is \'Local\'. List of supported adapters are \'Local\', \'S3\' and \'DOSpaces\'.', 'introduction' => '0.13.0', 'default' => 'Local', 'required' => false, @@ -462,7 +462,7 @@ return [ ], [ 'name' => '_APP_STORAGE_DEVICE_DO_SPACES_ACCESS_KEY', - 'description' => 'DigitalOcean spaces access key. Required when the storage adapter is set to DoSpaces. You can get your access key from your DigitalOcean console.', + 'description' => 'DigitalOcean spaces access key. Required when the storage adapter is set to DOSpaces. You can get your access key from your DigitalOcean console.', 'introduction' => '0.13.0', 'default' => '', 'required' => false, @@ -470,7 +470,7 @@ return [ ], [ 'name' => '_APP_STORAGE_DEVICE_DO_SPACES_SECRET', - 'description' => 'DigitalOcean spaces secret key. Required when the storage adapter is set to DoSpaces. You can get your secret key from your DigitalOcean console.', + 'description' => 'DigitalOcean spaces secret key. Required when the storage adapter is set to DOSpaces. You can get your secret key from your DigitalOcean console.', 'introduction' => '0.13.0', 'default' => '', 'required' => false, @@ -478,7 +478,7 @@ return [ ], [ 'name' => '_APP_STORAGE_DEVICE_DO_SPACES_REGION', - 'description' => 'DigitalOcean spaces region. Required when storage adapter is set to DoSpaces. You can find your region info for your space from DigitalOcean console.', + 'description' => 'DigitalOcean spaces region. Required when storage adapter is set to DOSpaces. You can find your region info for your space from DigitalOcean console.', 'introduction' => '0.13.0', 'default' => 'us-eas-1', 'required' => false, @@ -486,7 +486,7 @@ return [ ], [ 'name' => '_APP_STORAGE_DEVICE_DO_SPACES_BUCKET', - 'description' => 'DigitalOcean spaces bucket. Required when storage adapter is set to DoSpaces. You can create spaces in your DigitalOcean console.', + 'description' => 'DigitalOcean spaces bucket. Required when storage adapter is set to DOSpaces. You can create spaces in your DigitalOcean console.', 'introduction' => '0.13.0', 'default' => '', 'required' => false, diff --git a/app/controllers/shared/api.php b/app/controllers/shared/api.php index 156ab05e80..c9e492954d 100644 --- a/app/controllers/shared/api.php +++ b/app/controllers/shared/api.php @@ -8,7 +8,7 @@ use Utopia\Exception; use Utopia\Abuse\Abuse; use Utopia\Abuse\Adapters\TimeLimit; use Utopia\Database\Document; -use Utopia\Storage\Device\DoSpaces; +use Utopia\Storage\Device\DOSpaces; use Utopia\Storage\Device\Local; use Utopia\Storage\Device\S3; use Utopia\Storage\Storage; @@ -49,8 +49,8 @@ App::init(function ($utopia, $request, $response, $project, $user, $events, $aud $doSpacesRegion = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_REGION', ''); $doSpacesBucket = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_BUCKET', ''); $doSpacesAcl = 'private'; - Storage::setDevice('files', new DoSpaces(APP_STORAGE_UPLOADS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl)); - Storage::setDevice('functions', new DoSpaces(APP_STORAGE_FUNCTIONS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl)); + Storage::setDevice('files', new DOSpaces(APP_STORAGE_UPLOADS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl)); + Storage::setDevice('functions', new DOSpaces(APP_STORAGE_FUNCTIONS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl)); break; } diff --git a/app/init.php b/app/init.php index 37bf4de3ca..1d3f1d866f 100644 --- a/app/init.php +++ b/app/init.php @@ -53,7 +53,7 @@ use Utopia\Database\Query; use Utopia\Storage\Storage; use Utopia\Storage\Device\Local; use Utopia\Storage\Device\S3; -use Utopia\Storage\Device\DoSpaces; +use Utopia\Storage\Device\DOSpaces; const APP_NAME = 'Appwrite'; const APP_DOMAIN = 'appwrite.io'; @@ -852,7 +852,7 @@ App::setResource('deviceFiles', function($project) { $doSpacesRegion = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_REGION', ''); $doSpacesBucket = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_BUCKET', ''); $doSpacesAcl = 'private'; - return new DoSpaces(APP_STORAGE_UPLOADS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl); + return new DOSpaces(APP_STORAGE_UPLOADS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl); } }, ['project']); @@ -873,7 +873,7 @@ App::setResource('deviceFunctions', function($project) { $doSpacesRegion = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_REGION', ''); $doSpacesBucket = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_BUCKET', ''); $doSpacesAcl = 'private'; - return new DoSpaces(APP_STORAGE_FUNCTIONS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl); + return new DOSpaces(APP_STORAGE_FUNCTIONS . '/app-' . $project->getId(), $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl); } }, ['project']); diff --git a/app/workers/deletes.php b/app/workers/deletes.php index d14534cb33..7eb2ed7094 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -8,7 +8,7 @@ use Utopia\Database\Validator\Authorization; use Appwrite\Resque\Worker; use Utopia\Storage\Device\Local; use Utopia\Storage\Device\S3; -use Utopia\Storage\Device\DoSpaces; +use Utopia\Storage\Device\DOSpaces; use Utopia\Storage\Storage; use Utopia\Abuse\Abuse; use Utopia\Abuse\Adapters\TimeLimit; @@ -479,7 +479,7 @@ class DeletesV1 extends Worker $doSpacesRegion = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_REGION', ''); $doSpacesBucket = App::getEnv('_APP_STORAGE_DEVICE_DO_SPACES_BUCKET', ''); $doSpacesAcl = 'private'; - $device = new DoSpaces(APP_STORAGE_UPLOADS . '/app-' . $projectId, $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl); + $device = new DOSpaces(APP_STORAGE_UPLOADS . '/app-' . $projectId, $doSpacesAccessKey, $doSpacesSecretKey, $doSpacesBucket, $doSpacesRegion, $doSpacesAcl); break; } diff --git a/composer.json b/composer.json index 6f4f4dd136..819aa53c07 100644 --- a/composer.json +++ b/composer.json @@ -53,7 +53,7 @@ "utopia-php/preloader": "0.2.*", "utopia-php/domains": "1.1.*", "utopia-php/swoole": "0.3.*", - "utopia-php/storage": "0.6.*", + "utopia-php/storage": "0.7.*", "utopia-php/websocket": "0.1.0", "utopia-php/image": "0.5.*",