name: NATS JetStream Integration Tests
# Reusable workflow: referenced via `uses: ./.github/workflows/integration-nats.yaml`
# from both the PR-quality and push-to-main pipelines.
on:
workflow_call:
jobs:
nats:
name: NATS JetStream Integration Tests
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
NATS_URL: nats://localhost:4222
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
with:
toolchain: stable
# NATS service containers can't override the entrypoint to enable
# JetStream, so start it as a step instead.
- name: Start NATS (JetStream)
run: |
docker run -d --name nats -p 4222:4222 nats:2.10-alpine -js
for i in $(seq 1 30); do
if nc -z localhost 4222; then echo "nats up"; break; fi
sleep 1
done
- name: Run NATS transport integration tests
run: cargo test --test nats_transport --features nats --verbose