Skip to content

feat(hitl): add createHITLRequest — paired SDK release for ADK plugin v1 #75

feat(hitl): add createHITLRequest — paired SDK release for ADK plugin v1

feat(hitl): add createHITLRequest — paired SDK release for ADK plugin v1 #75

name: heartbeat-real-stack
# Real-stack heartbeat E2E across Linux + Windows + macOS. Stands up a
# localhost fake checkpoint server, constructs the SDK through its
# public API, verifies (a) the OS-native stamp file appears, (b) the
# checkpoint endpoint received exactly one ping, (c) a second
# invocation does NOT re-fire (warm-cache regression).
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
AXONFLOW_TELEMETRY: 'off'
jobs:
real-stack:
name: real-stack ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'
cache: 'maven'
- name: Set up Python (for harness driver)
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Build SDK jar
# bash on every OS — PowerShell on Windows mangles -D... arguments,
# splitting `-Dmaven.javadoc.skip=true` into ".javadoc.skip=true" as
# a phase. The bash shell on Windows runners (Git Bash) handles -D
# quoting consistently with Linux/macOS.
shell: bash
run: mvn -B -DskipTests package -Dmaven.javadoc.skip=true
# Compile smoke + run real-stack E2E in a single shell so the
# classpath separator (`:` on Linux/macOS, `;` on Windows) is
# native to the shell and consistent across javac + java steps.
- name: Compile + run real-stack heartbeat E2E (cold + warm)
shell: bash
run: |
set -e
SDK_JAR=$(ls target/axonflow-sdk-*.jar | grep -v sources | head -1)
mvn -B dependency:build-classpath -Dmdep.outputFile=cp.txt -Dmdep.includeScope=runtime
DEPS=$(cat cp.txt)
# bash on Windows runners (Git Bash) handles ':' as the path
# separator inside the shell process, but `java` and `javac`
# are native Windows binaries that need ';'. Detect and rewrite.
if [[ "$RUNNER_OS" == "Windows" ]]; then
CP_SEP=';'
else
CP_SEP=':'
fi
mkdir -p tests/heartbeat-real-stack/build
javac -d tests/heartbeat-real-stack/build \
-cp "${SDK_JAR}${CP_SEP}${DEPS}" \
tests/heartbeat-real-stack/SmokeJava.java
CP="tests/heartbeat-real-stack/build${CP_SEP}${SDK_JAR}${CP_SEP}${DEPS}"
python tests/heartbeat-real-stack/run_real_stack.py java -cp "$CP" SmokeJava