Compare commits

...

1 Commits

Author SHA1 Message Date
Kowser 4c3da806b0 test(e2e): scope FileStorageE2ETest to postgres + redis-es8
- tag file-storage, excluded by default in e2e/build.gradle
- postgres/es8 runner scripts opt in via -PrunFileStorageTests
- postgres server config + compose bind mount enable file-storage
  locally, mirroring the existing es8 setup
2026-07-28 22:45:45 +06:00
6 changed files with 30 additions and 5 deletions
+3
View File
@@ -21,6 +21,9 @@ services:
ports:
- 8000:8080
- 8127:5000
volumes:
# Shared with host so file:// URIs from the server resolve on the e2e runner.
- /tmp/conductor-file-storage-e2e:/tmp/conductor-file-storage-e2e
healthcheck:
test: [ "CMD", "curl","-I" ,"-XGET", "http://localhost:8080/health" ]
interval: 60s
@@ -23,4 +23,10 @@ management.endpoints.web.exposure.include=prometheus
loadSample=true
# Shorten postpone duration to speed up concurrent execution limit tests (default is 60s)
conductor.app.taskExecutionPostponeDuration=10s
conductor.app.taskExecutionPostponeDuration=10s
# File-storage: local backend shared with the host via bind mount so file:// URIs resolve
# identically on both sides. Required by FileStorageE2ETest.
conductor.file-storage.enabled=true
conductor.file-storage.type=local
conductor.file-storage.local.directory=/tmp/conductor-file-storage-e2e
+8 -1
View File
@@ -17,7 +17,14 @@ dependencies {
}
test {
useJUnitPlatform()
useJUnitPlatform {
// FileStorageE2ETest needs conductor.file-storage.enabled=true server-side (only
// postgres and redis-es8 configs set it). Skipped by default everywhere else;
// opt in with -PrunFileStorageTests.
if (!project.hasProperty('runFileStorageTests')) {
excludeTags 'file-storage'
}
}
maxParallelForks = 4
minHeapSize = '512m'
maxHeapSize = '2g'
+1 -1
View File
@@ -39,6 +39,6 @@ done
cd "$SCRIPT_DIR/.."
set +e
./gradlew :conductor-e2e:test -PrunE2E -DSERVER_ROOT_URI="$SERVER_ROOT_URI" "$@"
./gradlew :conductor-e2e:test -PrunE2E -PrunFileStorageTests -DSERVER_ROOT_URI="$SERVER_ROOT_URI" "$@"
EXIT_CODE=$?
exit $EXIT_CODE
+6 -1
View File
@@ -3,8 +3,13 @@ set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
COMPOSE_FILE="$SCRIPT_DIR/../docker/docker-compose-postgres.yaml"
STORAGE_DIR="/tmp/conductor-file-storage-e2e"
export SERVER_ROOT_URI="${SERVER_ROOT_URI:-http://localhost:8000}"
echo "Preparing shared storage dir at $STORAGE_DIR ..."
rm -rf "$STORAGE_DIR"
mkdir -p "$STORAGE_DIR"
echo "Starting Conductor (Postgres + Elasticsearch 7)..."
docker compose -f "$COMPOSE_FILE" build conductor-server
docker compose -f "$COMPOSE_FILE" up -d
@@ -26,7 +31,7 @@ for i in $(seq 1 60); do
done
cd "$SCRIPT_DIR/.."
./gradlew :conductor-e2e:test -PrunE2E -DSERVER_ROOT_URI="$SERVER_ROOT_URI" "$@"
./gradlew :conductor-e2e:test -PrunE2E -PrunFileStorageTests -DSERVER_ROOT_URI="$SERVER_ROOT_URI" "$@"
EXIT_CODE=$?
docker compose -f "$COMPOSE_FILE" down -v
@@ -18,6 +18,7 @@ import java.nio.file.Path;
import java.util.Map;
import java.util.UUID;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import com.netflix.conductor.client.exception.ConductorClientException;
@@ -39,8 +40,11 @@ import static org.junit.jupiter.api.Assertions.fail;
* {@code type=local}). A bind mount shares the server's storage directory with the host so the
* {@code file:///...} URIs returned by the API resolve on both sides.
*
* <p>Run via: {@code e2e/run_tests-es8.sh}.
* <p>Tagged {@code file-storage}; excluded by default (see {@code e2e/build.gradle}). Only {@code
* e2e/run_tests-postgres.sh} and {@code e2e/run_tests-es8.sh} opt back in with {@code
* -PrunFileStorageTests}, since those are the only lanes whose server config enables file-storage.
*/
@Tag("file-storage")
class FileStorageE2ETest {
private static final TypeReference<Map<String, Object>> MAP_TYPE = new TypeReference<>() {};