Skip to content

Commit f0d6523

Browse files
committed
feat(ci): add Cardano node compatibility script for release notes
1 parent effe078 commit f0d6523

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
JSON_FILE=$1
6+
7+
if [[ ! -f "$JSON_FILE" ]]; then
8+
echo "Error: $JSON_FILE not found!"
9+
exit 1
10+
fi
11+
12+
# Get all unique keys from 'cardano-minimum-version'
13+
MITHRIL_NODES=$(jq -r '[.[] | .["cardano-minimum-version"] | keys[]] | unique | .[]' "$JSON_FILE")
14+
15+
# Create header of the markdown table
16+
header="| Network"
17+
separator="|----------"
18+
19+
for key in $MITHRIL_NODES; do
20+
title=$(echo "$key" | sed 's/-/ /g' | sed 's/\b\w/\U&/g')
21+
header="$header | $title"
22+
separator="$separator |:-------------:"
23+
done
24+
25+
header="$header |"
26+
separator="$separator |"
27+
28+
echo ""
29+
echo "## Cardano Node Compatibility"
30+
echo ""
31+
echo "$header"
32+
echo "$separator"
33+
34+
# Process each top-level network (mainnet, preprod, preview)
35+
for MITHRIL_NETWORK in $(jq -r 'keys[]' "$JSON_FILE"); do
36+
# Get all mithril-networks for this top-level network
37+
jq -r ".\"$MITHRIL_NETWORK\".\"mithril-networks\"[] | keys[]" "$JSON_FILE" | while read -r MITHRIL_NETWORK_NAME; do
38+
row="| $MITHRIL_NETWORK_NAME"
39+
40+
# For each cardano-minimum-version key, get the value
41+
for MITHRIL_NODE in $MITHRIL_NODES; do
42+
version=$(jq -r ".\"$MITHRIL_NETWORK\".\"cardano-minimum-version\".\"$MITHRIL_NODE\" // \"N/A\"" "$JSON_FILE")
43+
if [[ "$version" != "N/A" ]]; then
44+
row="$row | Cardano \`$version+\`"
45+
else
46+
row="$row | N/A"
47+
fi
48+
done
49+
50+
row="$row |"
51+
echo "$row"
52+
done
53+
done

0 commit comments

Comments
 (0)