Hourly Monitoring Scripts #824
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Hourly Monitoring Scripts | |
| on: | |
| schedule: | |
| - cron: "26 * * * *" | |
| workflow_dispatch: | |
| # Add concurrency control | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| PROVIDER_URL_POLYGON: ${{ secrets.PROVIDER_URL }} | |
| PROVIDER_URL_POLYGON_1: ${{ secrets.PROVIDER_URL_POLYGON_1 }} | |
| PROVIDER_URL_POLYGON_2: ${{ secrets.PROVIDER_URL_POLYGON_2 }} | |
| PROVIDER_URL_OPTIMISM: ${{ secrets.PROVIDER_URL_OPTIMISM }} | |
| PROVIDER_URL_MAINNET: ${{ secrets.PROVIDER_URL_MAINNET }} | |
| PROVIDER_URL_MAINNET_1: ${{ secrets.PROVIDER_URL_MAINNET_1 }} | |
| PROVIDER_URL_MAINNET_2: ${{ secrets.PROVIDER_URL_MAINNET_2 }} | |
| PROVIDER_URL_MAINNET_3: ${{ secrets.PROVIDER_URL_MAINNET_3 }} | |
| PROVIDER_URL_ARBITRUM: ${{ secrets.PROVIDER_URL_ARBITRUM }} | |
| PROVIDER_URL_BASE: ${{ secrets.PROVIDER_URL_BASE }} | |
| PROVIDER_URL_BASE_1: ${{ secrets.PROVIDER_URL_BASE_1 }} | |
| PROVIDER_URL_BASE_2: ${{ secrets.PROVIDER_URL_BASE_2 }} | |
| PROVIDER_URL_KATANA: ${{ secrets.PROVIDER_URL_KATANA }} | |
| PROVIDER_URL_KATANA_1: ${{ secrets.PROVIDER_URL_KATANA_1 }} | |
| TELEGRAM_BOT_TOKEN_AAVE: ${{ secrets.TELEGRAM_BOT_TOKEN_AAVE }} | |
| TELEGRAM_CHAT_ID_AAVE: ${{ secrets.TELEGRAM_CHAT_ID_AAVE }} | |
| TELEGRAM_BOT_TOKEN_COMP: ${{ secrets.TELEGRAM_BOT_TOKEN_COMP }} | |
| TELEGRAM_CHAT_ID_COMP: ${{ secrets.TELEGRAM_CHAT_ID_COMP }} | |
| TELEGRAM_BOT_TOKEN_LIDO: ${{ secrets.TELEGRAM_BOT_TOKEN_LIDO }} | |
| TELEGRAM_CHAT_ID_LIDO: ${{ secrets.TELEGRAM_CHAT_ID_LIDO }} | |
| TELEGRAM_BOT_TOKEN_SILO: ${{ secrets.TELEGRAM_BOT_TOKEN_SILO }} | |
| TELEGRAM_CHAT_ID_SILO: ${{ secrets.TELEGRAM_CHAT_ID_SILO }} | |
| TELEGRAM_BOT_TOKEN_STARGATE: ${{ secrets.TELEGRAM_BOT_TOKEN_STARGATE }} | |
| TELEGRAM_CHAT_ID_STARGATE: ${{ secrets.TELEGRAM_CHAT_ID_STARGATE }} | |
| TELEGRAM_BOT_TOKEN_SPARK: ${{ secrets.TELEGRAM_BOT_TOKEN_SPARK }} | |
| TELEGRAM_CHAT_ID_SPARK: ${{ secrets.TELEGRAM_CHAT_ID_SPARK }} | |
| TELEGRAM_BOT_TOKEN_PENDLE: ${{ secrets.TELEGRAM_BOT_TOKEN_PENDLE }} | |
| TELEGRAM_CHAT_ID_PENDLE: ${{ secrets.TELEGRAM_CHAT_ID_PENDLE }} | |
| TELEGRAM_BOT_TOKEN_PEGS: ${{ secrets.TELEGRAM_BOT_TOKEN_PEGS }} | |
| TELEGRAM_CHAT_ID_PEGS: ${{ secrets.TELEGRAM_CHAT_ID_PEGS }} | |
| TELEGRAM_CHAT_ID_MORPHO: ${{ secrets.TELEGRAM_CHAT_ID_MORPHO }} | |
| TELEGRAM_CHAT_ID_USD0: ${{ secrets.TELEGRAM_CHAT_ID_USD0 }} | |
| TELEGRAM_CHAT_ID_MOONWELL: ${{ secrets.TELEGRAM_CHAT_ID_MOONWELL }} | |
| TELEGRAM_CHAT_ID_RTOKEN: ${{ secrets.TELEGRAM_CHAT_ID_RTOKEN }} | |
| TELEGRAM_CHAT_ID_RESOLV: ${{ secrets.TELEGRAM_CHAT_ID_RESOLV }} | |
| TELEGRAM_CHAT_ID_ETHENA: ${{ secrets.TELEGRAM_CHAT_ID_ETHENA }} | |
| TELEGRAM_CHAT_ID_EULER: ${{ secrets.TELEGRAM_CHAT_ID_EULER }} | |
| TELEGRAM_BOT_TOKEN_DEFAULT: ${{ secrets.TELEGRAM_BOT_TOKEN_DEFAULT }} | |
| GRAPH_API_KEY: ${{ secrets.GRAPH_API_KEY }} | |
| TALLY_API_KEY: ${{ secrets.TALLY_API_KEY }} | |
| ETHERSCAN_TOKEN: ${{ secrets.ETHERSCAN_TOKEN }} | |
| POLYGONSCAN_TOKEN: ${{ secrets.POLYGONSCAN_TOKEN }} | |
| OPTIMISMSCAN_TOKEN: ${{ secrets.OPTIMISMSCAN_TOKEN }} | |
| ARBISCAN_TOKEN: ${{ secrets.ARBISCAN_TOKEN }} | |
| jobs: | |
| my_job: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.10 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| cache: "pip" # caching pip dependencies | |
| - name: Install uv | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install uv | |
| - name: Install dependencies | |
| run: | | |
| uv pip install --system . | |
| # restore file from cache | |
| - name: Get cache file | |
| id: cache-restore | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: cache-id.txt | |
| key: cache-id-v4-${{ hashFiles('cache-id.txt') }} | |
| restore-keys: | | |
| cache-id-v4- | |
| # Get initial hash | |
| - name: Get initial hash | |
| id: initial-hash | |
| run: echo "hash=${{ hashFiles('cache-id.txt') }}" >> $GITHUB_OUTPUT | |
| - name: Run Morpho Bad Debt script | |
| run: uv run morpho/markets.py | |
| - name: Run Morpho Markets Graph script | |
| run: uv run morpho/markets_graph.py | |
| - name: Run Aave script | |
| run: uv run aave/main.py | |
| - name: Run Aave Proposals script | |
| run: uv run aave/proposals.py | |
| - name: Run Compound script | |
| run: uv run compound/main.py | |
| - name: Run Compound Proposals script | |
| run: uv run compound/proposals.py | |
| - name: Run Lido Ethereum script | |
| run: uv run lido/steth/main.py | |
| - name: Run LRT Peg Checker Balancer | |
| run: uv run lrt-pegs/balancer/main.py | |
| - name: Run LRT Peg Checker Curve | |
| run: uv run lrt-pegs/curve/main.py | |
| - name: Run Moonwell Bad Debt script | |
| run: uv run moonwell/bad_debt.py | |
| - name: Run Moonwell Proposals script | |
| run: uv run moonwell/proposals.py | |
| - name: Run RToken Monitoring script | |
| run: uv run rtoken/monitor_rtoken.py | |
| - name: Run Origin Protocol script | |
| run: uv run lrt-pegs/origin_protocol.py | |
| - name: Run Euler Markets script | |
| run: uv run euler/markets.py | |
| - name: Run Resolv Monitoring script | |
| run: uv run resolv/resolv.py | |
| - name: Run Silo Utilization script | |
| run: uv run silo/ur_sniff.py | |
| # Check final hash | |
| - name: Check final hash | |
| id: final-hash | |
| run: echo "hash=${{ hashFiles('cache-id.txt') }}" >> $GITHUB_OUTPUT | |
| - name: Cache cache-id.txt | |
| if: always() && steps.initial-hash.outputs.hash != steps.final-hash.outputs.hash | |
| id: cache-save | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: cache-id.txt | |
| key: cache-id-v4-${{ hashFiles('cache-id.txt') }} |