Skip to content

Commit 93be8ec

Browse files
committed
Improve e2e-cli setup: java/mvn resolution and devbox docs
- Resolve java and mvn from PATH or devbox nix profile fallback - Pass resolved $JAVA binary to run-tests.sh so it works outside devbox shell - Add devbox setup as recommended path in README, document auto-fallback behavior
1 parent 302cd18 commit 93be8ec

2 files changed

Lines changed: 59 additions & 6 deletions

File tree

e2e-cli/README.md

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,41 @@ E2E test CLI for the [analytics-java](https://github.com/segmentio/analytics-jav
44

55
Built with Kotlin (JVM) and packaged as a fat jar via Maven.
66

7-
## Setup
7+
## Running E2E tests
8+
9+
### With devbox (recommended)
810

911
```bash
10-
mvn package -pl e2e-cli -am
12+
# From repo root — activates Java 11 and Maven automatically
13+
devbox shell
14+
15+
# Then from e2e-cli dir:
16+
./run-e2e.sh
1117
```
1218

13-
## Usage
19+
### Without devbox
20+
21+
Requires Java 11+, Maven, and Node.js 18+.
1422

1523
```bash
24+
./run-e2e.sh
25+
```
26+
27+
The script auto-detects `java` and `mvn` on PATH. If they're not on PATH but devbox has been initialized, it falls back to the devbox nix profile binaries automatically.
28+
29+
### Override sdk-e2e-tests location
30+
31+
```bash
32+
E2E_TESTS_DIR=../my-e2e-tests ./run-e2e.sh
33+
```
34+
35+
## Manual CLI usage
36+
37+
```bash
38+
# Build first (from repo root)
39+
mvn package -pl e2e-cli -am -DskipTests
40+
41+
# Run
1642
java -jar e2e-cli/target/e2e-cli-*-jar-with-dependencies.jar --input '{"writeKey":"...", ...}'
1743
```
1844

e2e-cli/run-e2e.sh

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
#
33
# Run E2E tests for analytics-java
44
#
5-
# Prerequisites: Java 11+, Maven, Node.js 18+
5+
# Prerequisites: Node.js 18+ and one of:
6+
# - devbox (recommended): run `devbox shell` first, then ./run-e2e.sh
7+
# - Java 11+ and Maven on PATH
68
#
79
# Usage:
810
# ./run-e2e.sh [extra args passed to run-tests.sh]
@@ -17,11 +19,36 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
1719
SDK_ROOT="$SCRIPT_DIR/.."
1820
E2E_DIR="${E2E_TESTS_DIR:-$SDK_ROOT/../sdk-e2e-tests}"
1921

22+
# Resolve java and mvn — prefer JAVA_HOME/devbox nix profile, fall back to PATH
23+
if [[ -z "$JAVA" ]]; then
24+
if command -v java &>/dev/null; then
25+
JAVA="java"
26+
elif [[ -f "$SDK_ROOT/.devbox/nix/profile/default/bin/java" ]]; then
27+
JAVA="$SDK_ROOT/.devbox/nix/profile/default/bin/java"
28+
else
29+
echo "Error: java not found. Run 'devbox shell' first or install Java 11+."
30+
exit 1
31+
fi
32+
fi
33+
34+
if [[ -z "$MVN" ]]; then
35+
if command -v mvn &>/dev/null; then
36+
MVN="mvn"
37+
elif [[ -f "$SDK_ROOT/.devbox/nix/profile/default/bin/mvn" ]]; then
38+
MVN="$SDK_ROOT/.devbox/nix/profile/default/bin/mvn"
39+
else
40+
echo "Error: mvn not found. Run 'devbox shell' first or install Maven."
41+
exit 1
42+
fi
43+
fi
44+
2045
echo "=== Building analytics-java e2e-cli ==="
46+
echo "Using Java: $($JAVA -version 2>&1 | head -1)"
47+
echo "Using Maven: $($MVN -version 2>&1 | head -1)"
2148

2249
# Build SDK and e2e-cli
2350
cd "$SDK_ROOT"
24-
mvn package -pl e2e-cli -am -DskipTests
51+
$MVN package -pl e2e-cli -am -DskipTests
2552

2653
# Find the built jar
2754
CLI_JAR=$(find "$SDK_ROOT/e2e-cli/target" -name "e2e-cli-*-jar-with-dependencies.jar" | head -1)
@@ -37,5 +64,5 @@ echo ""
3764
cd "$E2E_DIR"
3865
./scripts/run-tests.sh \
3966
--sdk-dir "$SCRIPT_DIR" \
40-
--cli "java -jar $CLI_JAR" \
67+
--cli "$JAVA -jar $CLI_JAR" \
4168
"$@"

0 commit comments

Comments
 (0)