Skip to content

PDS download smoke

PDS download smoke #98

Workflow file for this run

name: PDS download smoke
# Standalone PDS-node availability canary. Fetches a small index from each
# supported PDS node so an outage or a download/parse regression surfaces as a
# failed run here — WITHOUT blocking the release gate (these tests are `slow`
# and excluded from that workflow). Scheduled daily; also runnable on demand.
on:
schedule:
- cron: "17 6 * * *" # daily ~06:17 UTC
workflow_dispatch:
jobs:
smoke:
name: Fetch a small index from each PDS node
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
# GitHub-hosted runners take a fresh Azure IP per job, so an archive
# operator investigating a blip needs the IP *from the failing run*, not a
# static one. Always-run so it is recorded on failures too.
- name: Record egress IP for upstream debugging
if: always()
run: |
{
echo "egress IP : $(curl -s --max-time 10 https://api.ipify.org || echo unavailable)"
echo "at : $(date -u '+%Y-%m-%d %H:%M:%S UTC')"
echo "run : $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
} | tee -a "$GITHUB_STEP_SUMMARY"
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install planetarypy
run: pip install -e ".[dev]"
# No cache: every run is a genuine fetch from the PDS nodes. The smoke
# tests are `slow`-marked, so they run here (no `-m "not slow"` filter).
# -o addopts="" drops the repo defaults (coverage, xdist, -m filters);
# the package is pip-installed, so imports resolve fine.
- name: Run PDS download smokes
run: pytest tests/test_pds_smoke.py -o addopts="" -v