mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-05 11:18:24 +00:00
ci: run geode tests in a dedicated isolated job
The first cut appended :geode:test to the build-desktop matrix command. That was wrong twice over: geode is JVM-only, so it ran 3× across the ubuntu/macos/windows matrix, and — because org.gradle.parallel=true — its default suite's CPU-heavy throughput benchmarks (a 1M-event mirror sync, WireReqFloor, NegentropyServerReconcile) ran concurrently with the timing-sensitive quartz relay-client tests, flaking NostrClientReqBypassingRelayLimitsTest.denseSecondBeyondCapIsSteppedPastWithoutStalling. Move :geode:test into its own test-geode job (needs: lint, ubuntu, JVM 21) so it runs once and its benchmark load can't starve another module's timing assertions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KCdJwdhGtmLZ12ViS56S3k
This commit is contained in:
@@ -87,7 +87,7 @@ jobs:
|
||||
|
||||
- name: Test + Build Desktop (gradle)
|
||||
run: |
|
||||
CMD="./gradlew :quartz:jvmTest :commons:jvmTest :nestsClient:jvmTest :geode:test :cli:test :desktopApp:test :desktopApp:${{ matrix.desktop-task }}"
|
||||
CMD="./gradlew :quartz:jvmTest :commons:jvmTest :nestsClient:jvmTest :cli:test :desktopApp:test :desktopApp:${{ matrix.desktop-task }}"
|
||||
if [ "${{ runner.os }}" = "Linux" ]; then
|
||||
xvfb-run --auto-servernum $CMD
|
||||
else
|
||||
@@ -110,6 +110,42 @@ jobs:
|
||||
name: ${{ matrix.desktop-artifact-name }}
|
||||
path: ${{ matrix.desktop-artifact-path }}
|
||||
|
||||
# geode (the standalone Nostr relay) is JVM-only, so it runs in its own job
|
||||
# rather than the build-desktop matrix — one runner suffices (no reason to test
|
||||
# a platform-independent module 3× across the desktop OS matrix). Isolating it
|
||||
# also keeps its default suite's CPU-heavy throughput benchmarks (a 1M-event
|
||||
# mirror sync, WireReqFloor, NegentropyServerReconcile) from contending with the
|
||||
# timing-sensitive quartz relay-client tests under org.gradle.parallel — that
|
||||
# contention flakes tests like NostrClientReqBypassingRelayLimitsTest.
|
||||
test-geode:
|
||||
needs: lint
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 30
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 21
|
||||
|
||||
- name: Set up Gradle
|
||||
uses: gradle/actions/setup-gradle@v6
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
|
||||
|
||||
- name: Test geode (gradle)
|
||||
run: ./gradlew :geode:test
|
||||
|
||||
- name: Upload geode Test Reports
|
||||
uses: actions/upload-artifact@v7
|
||||
if: failure()
|
||||
with:
|
||||
name: geode Test Reports
|
||||
path: geode/build/reports
|
||||
|
||||
test-quartz-ios:
|
||||
# Phase 1 of the iOS support plan
|
||||
# (amethyst/plans/2026-05-24-ios-support.md): keep :quartz green on iOS
|
||||
|
||||
@@ -45,7 +45,7 @@ Two simplifications vs. the CLI:
|
||||
| Asset naming (`geode-<ver>-<fam>-<arch>`) | `scripts/asset-name.sh` |
|
||||
| Release matrix + GHCR push | `.github/workflows/create-release.yml` (`build-geode`, `docker-geode`) |
|
||||
| Homebrew formula auto-sync | `.github/workflows/bump-homebrew-geode-formula.yml` |
|
||||
| geode tests in CI | `.github/workflows/build.yml` (`:geode:test`) |
|
||||
| geode tests in CI (dedicated `test-geode` job) | `.github/workflows/build.yml` |
|
||||
| Operator docs | `geode/README.md` |
|
||||
|
||||
## Distribution channels
|
||||
|
||||
Reference in New Issue
Block a user