-
Notifications
You must be signed in to change notification settings - Fork 3
/
scheduler.yml
45 lines (38 loc) · 1.5 KB
/
scheduler.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
agents:
queue: "snapshots"
steps:
- command: echo "--> Start of concurrency gate"
concurrency_group: 'validator-bonds/scheduler'
concurrency: 1
- wait: ~
- label: ":recycle: Pruning old snapshot directories"
concurrency_group: 'validator-bonds/fetch'
concurrency: 1
env:
snapshots_dir: /mnt/storage-1/snapshots
commands:
- 'ls -td -- /mnt/storage-1/snapshots/*/ | awk "NR>1" | tee /dev/stderr | xargs rm -rf'
- label: ":calendar: Schedule"
concurrency_group: 'validator-bonds/fetch'
concurrency: 1
commands:
- |
max_processed_epoch=$(gcloud storage ls "gs://marinade-validator-bonds-mainnet" | awk -F / '{print $$4}' | sort -nr | head -n 1 || exit 1)
max_processed_epoch="$${max_processed_epoch%%[^0-9]*}"
max_available_epoch=$(gcloud storage ls "gs://jito-mainnet/**/*.tar.zst" | awk -F / '{print $$4}' | sort -nr | head -n 1)
echo max_processed_epoch: $$max_processed_epoch
echo max_available_epoch: $$max_available_epoch
(( $$max_processed_epoch < $$max_available_epoch )) && cat <<EOF | buildkite-agent pipeline upload
steps:
- trigger: "fetch-and-parse-snapshot"
label: ":rocket: Trigger: Fetch Solana snapshot ($$max_available_epoch)"
async: false
build:
env:
EPOCH: $$max_available_epoch
EOF
echo Scheduling complete
- wait: ~
- command: echo "End of concurrency gate <--"
concurrency_group: 'validator-bonds/scheduler'
concurrency: 1