minigraf 1.2.0

Zero-config, single-file, embedded graph database with bi-temporal Datalog queries
Documentation
name: Release Cascade

on:
  push:
    tags:
      - 'v[0-9]*.[0-9]*.[0-9]*'

jobs:
  dispatch-bindings:
    name: Dispatch to binding repos
    runs-on: ubuntu-latest
    steps:
      - name: Wait for minigraf to be indexed on crates.io
        run: |
          VERSION="${GITHUB_REF_NAME#v}"
          echo "Waiting for minigraf@$VERSION on crates.io..."
          FOUND=0
          for i in $(seq 1 18); do
            STATUS=$(curl -s "https://crates.io/api/v1/crates/minigraf/$VERSION" \
              -H "User-Agent: minigraf-cascade/1.0" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('version',{}).get('num',''))" 2>/dev/null || echo "")
            if [ "$STATUS" = "$VERSION" ]; then
              echo "minigraf@$VERSION is live (attempt $i)"
              FOUND=1
              break
            fi
            echo "Attempt $i/18: not yet available, waiting 10s..."
            sleep 10
          done
          if [ "$FOUND" != "1" ]; then
            echo "ERROR: minigraf@$VERSION did not appear on crates.io within 3 minutes"
            exit 1
          fi

      - name: Dispatch to binding repos
        env:
          GH_TOKEN: ${{ secrets.MINIGRAF_RELEASE_TOKEN }}
        run: |
          VERSION="${GITHUB_REF_NAME}"
          for REPO in minigraf-python minigraf-node minigraf-wasm \
                      minigraf-java minigraf-android minigraf-swift minigraf-c; do
            echo "Dispatching core-release to project-minigraf/$REPO @ $VERSION"
            gh api repos/project-minigraf/$REPO/dispatches \
              -f event_type=core-release \
              -f "client_payload[version]=$VERSION"
          done