Skip to content

Commit

Permalink
ci: add monitoring test matrix (#1848)
Browse files Browse the repository at this point in the history
  • Loading branch information
douglance authored Aug 20, 2024
1 parent 377c191 commit cebdbee
Show file tree
Hide file tree
Showing 9 changed files with 155 additions and 231 deletions.
19 changes: 19 additions & 0 deletions .github/workflows/assertion-monitor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Assertion Monitor

on:
push:
workflow_dispatch:
schedule:
- cron: "0 */6 * * *" # Run every 6 hours

jobs:
run-monitoring:
name: Assertion Monitor (${{ matrix.chain }})
strategy:
matrix:
chain: [core, orbit]
uses: ./.github/workflows/monitoring.yml
with:
chain: ${{ matrix.chain }}
monitor: assertion
secrets: inherit
19 changes: 19 additions & 0 deletions .github/workflows/batch-poster-monitor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Batch Poster Monitor

on:
push:
workflow_dispatch:
schedule:
- cron: "0 */6 * * *" # Run every 6 hours

jobs:
run-monitoring:
name: Batch Poster Monitor (${{ matrix.chain }})
strategy:
matrix:
chain: [core, orbit]
uses: ./.github/workflows/monitoring.yml
with:
chain: ${{ matrix.chain }}
monitor: batch-poster
secrets: inherit
61 changes: 0 additions & 61 deletions .github/workflows/core-batch-poster-monitor.yml

This file was deleted.

58 changes: 0 additions & 58 deletions .github/workflows/core-retryable-monitor.yml

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/monitor-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"core": {
"generateCommand": "generateCoreChainsToMonitor",
"configFile": "__auto-generated-core-chains.json",
"slackTokens": {
"assertion": "CORE_CHAIN_ASSERTION_MONITORING_SLACK_TOKEN",
"batch-poster": "CORE_CHAIN_BATCH_POSTER_MONITORING_SLACK_TOKEN",
"retryable": "CORE_CHAIN_RETRYABLE_MONITORING_SLACK_TOKEN"
},
"slackChannels": {
"assertion": "CORE_CHAIN_ASSERTION_MONITORING_SLACK_CHANNEL",
"batch-poster": "CORE_CHAIN_BATCH_POSTER_MONITORING_SLACK_CHANNEL",
"retryable": "CORE_CHAIN_RETRYABLE_MONITORING_SLACK_CHANNEL"
}
},
"orbit": {
"generateCommand": "generateOrbitChainsToMonitor",
"configFile": "__auto-generated-orbit-chains.json",
"slackTokens": {
"assertion": "ORBIT_CHAIN_ASSERTION_MONITORING_SLACK_TOKEN",
"batch-poster": "ORBIT_CHAIN_BATCH_POSTER_MONITORING_SLACK_TOKEN",
"retryable": "ORBIT_RETRYABLE_MONITORING_SLACK_TOKEN"
},
"slackChannels": {
"assertion": "ORBIT_CHAIN_ASSERTION_MONITORING_SLACK_CHANNEL",
"batch-poster": "ORBIT_CHAIN_BATCH_POSTER_MONITORING_SLACK_CHANNEL",
"retryable": "ORBIT_RETRYABLE_MONITORING_SLACK_CHANNEL"
}
}
}
68 changes: 68 additions & 0 deletions .github/workflows/monitoring.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Reusable Monitoring Workflow

on:
workflow_call:
inputs:
chain:
required: true
type: string
monitor:
required: true
type: string

env:
NEXT_PUBLIC_INFURA_KEY: ${{ secrets.NEXT_PUBLIC_INFURA_KEY }}
NOVA_MONITOR_RPC_URL: ${{ secrets.NOVA_MONITOR_RPC_URL }}
ARB_ONE_MONITOR_RPC_URL: ${{ secrets.ARB_ONE_MONITOR_RPC_URL }}
NODE_ENV: "CI"

jobs:
run-monitoring:
runs-on: ubuntu-latest
steps:
- name: Checkout repositories
uses: actions/checkout@v4
with:
repository: OffchainLabs/arbitrum-token-bridge

- name: Install node_modules
uses: OffchainLabs/actions/node-modules/install@main

- name: Checkout Arbitrum Monitoring repository
uses: actions/checkout@v4
with:
repository: OffchainLabs/arbitrum-monitoring
path: arbitrum-monitoring

- name: Setup Node and install dependencies
uses: actions/setup-node@v4
with:
node-version: latest
- run: cd ./arbitrum-monitoring && yarn install

- name: Load configuration
id: config
run: |
CONFIG=$(cat .github/workflows/monitor-config.json | jq -r '.${{ inputs.chain }}')
echo "generate_command=$(echo $CONFIG | jq -r '.generateCommand')" >> $GITHUB_OUTPUT
echo "config_file=$(echo $CONFIG | jq -r '.configFile')" >> $GITHUB_OUTPUT
echo "slack_token=$(echo $CONFIG | jq -r '.slackTokens.${{ inputs.monitor }}')" >> $GITHUB_OUTPUT
echo "slack_channel=$(echo $CONFIG | jq -r '.slackChannels.${{ inputs.monitor }}')" >> $GITHUB_OUTPUT
- name: Generate chains JSON
run: yarn workspace arb-token-bridge-ui ${{ steps.config.outputs.generate_command }}
env:
BATCH_POSTER_MONITORING: ${{ inputs.monitor == 'batch-poster' }}

- name: Copy chains JSON to Arbitrum Monitoring
run: cp ./packages/arb-token-bridge-ui/public/${{ steps.config.outputs.config_file }} ./arbitrum-monitoring/packages/${{ inputs.monitor }}-monitor/config.json

- name: Run monitoring command
run: cd ./arbitrum-monitoring && yarn ${{ inputs.monitor }}-monitor --enableAlerting
env:
RETRYABLE_MONITORING_SLACK_TOKEN: ${{ secrets[steps.config.outputs.slack_token] }}
RETRYABLE_MONITORING_SLACK_CHANNEL: ${{ secrets[steps.config.outputs.slack_channel] }}
BATCH_POSTER_MONITORING_SLACK_TOKEN: ${{ secrets[steps.config.outputs.slack_token] }}
BATCH_POSTER_MONITORING_SLACK_CHANNEL: ${{ secrets[steps.config.outputs.slack_channel] }}
ASSERTION_MONITORING_SLACK_TOKEN: ${{ secrets[steps.config.outputs.slack_token] }}
ASSERTION_MONITORING_SLACK_CHANNEL: ${{ secrets[steps.config.outputs.slack_channel] }}
56 changes: 0 additions & 56 deletions .github/workflows/orbit-batch-poster-monitor.yml

This file was deleted.

56 changes: 0 additions & 56 deletions .github/workflows/orbit-retryable-monitor.yml

This file was deleted.

19 changes: 19 additions & 0 deletions .github/workflows/retryable-monitor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Retryable Monitor

on:
push:
workflow_dispatch:
schedule:
- cron: "3 8 * * *" # Run once a day at 08:03am GMT

jobs:
run-retryable-monitoring:
name: Retryables Monitor (${{ matrix.chain }})
strategy:
matrix:
chain: [core, orbit]
uses: ./.github/workflows/monitoring.yml
with:
chain: ${{ matrix.chain }}
monitor: retryable
secrets: inherit

0 comments on commit cebdbee

Please sign in to comment.