The storage service is responsible for parsing and managing uploaded apps, and communicating with third-party storage mechanisms (S3, FTP, etc.)
Running deployapp-storage-service
as part of deployapp-platform
is recommended for a streamlined local development environment setup process.
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
.
- Download GraalVM CE.
- Install the TruffleRuby runtime.
gu install ruby
- Install the
app-info
gem based on this compatibility matrix.If there are errors when building protobuf-related native extensions on AArch64 Linux, please refer togem install app-info -v x.x.x
the Dockerfile
. - Copy
application-dev.yml
tosrc/main/resources
and edit it accordingly, then run
JAVA_HOME=/path/to/graalvm/jdk/Home SPRING_PROFILES_ACTIVE=dev ./gradlew bootRun
JAVA_HOME=/path/to/graalvm/jdk/Home sh run_unit_tests.sh
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.*