name: Update Relay Maps on: # Run after the "Update Relay Data" workflow completes workflow_run: workflows: ["Track Relay Count Changes"] types: - completed # Also allow manual triggering workflow_dispatch: permissions: contents: write jobs: update-relay-maps: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch' }} steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 100 # Need deeper history - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.x' - name: Install Python dependencies run: | python -m pip install --upgrade pip # Matplotlib 3.11 raises a LinearRing error with Cartopy 0.25.0. # Keep this at the last version known to render all three maps. pip install matplotlib==3.10.9 pandas numpy folium scipy # Install cartopy and its dependencies sudo apt-get update sudo apt-get install -y libproj-dev proj-bin proj-data libgeos-dev pip install cartopy==0.25.0 - name: Generate relay maps run: | mkdir -p assets # Execute the script python scripts/generate_relay_map.py - name: Check for changes id: git-check run: | git add assets/relay_locations_static.png assets/relay_locations_heatmap.png assets/relay_locations_interactive.html git diff --staged --exit-code || echo "changes=true" >> $GITHUB_OUTPUT - name: Commit and push changes if: steps.git-check.outputs.changes == 'true' run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git commit -m "Update relay location maps - $(date -u)" git push env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}