Skip to content

Latest commit

 

History

History
50 lines (39 loc) · 2.58 KB

README.md

File metadata and controls

50 lines (39 loc) · 2.58 KB

DeployApp Storage Service

The storage service is responsible for parsing and managing uploaded apps, and communicating with third-party storage mechanisms (S3, FTP, etc.)

Development

Running deployapp-storage-service as part of deployapp-platform is recommended for a streamlined local development environment setup process.

Environment

GraalVM CE 23.0.0-dev+, OpenJDK 17 is required.

deployapp-storage-service depends on app-info-java-graalvm, which in turn depends on GraalVM and the Polyglot API.

There are many scenarios where it is useful to run deployapp-storage-service independently, such as when trying to expose a local instance of deployapp-backend through a K8s cluster via Telepresence and kubectl port-forward.

  1. Download GraalVM CE.
  2. Install the TruffleRuby runtime.
    gu install ruby
    
  3. Install the app-info gem based on this compatibility matrix.
    gem install app-info -v x.x.x
    
    If there are errors when building protobuf-related native extensions on AArch64 Linux, please refer to the Dockerfile.
  4. Copy application-dev.yml to src/main/resources and edit it accordingly, then run
JAVA_HOME=/path/to/graalvm/jdk/Home SPRING_PROFILES_ACTIVE=dev ./gradlew bootRun

Unit tests

JAVA_HOME=/path/to/graalvm/jdk/Home sh run_unit_tests.sh

Integration tests

sh run_integration_tests.sh

spins up all the dependent services with docker-compose, then runs the tests.

Alternatively, the relevant services may be started with, for instance,

docker-compose -f docker-compose.test.yml up redis minio minio_createbucket ftp-web ftp

and the desired tests in the test suite run with

./gradlew :test --tests io.github.transfusion.deployapp.storagemanagementservice.external_integration.*