-
Notifications
You must be signed in to change notification settings - Fork 94
116 lines (100 loc) · 3.92 KB
/
test-devnet.yaml
File metadata and controls
116 lines (100 loc) · 3.92 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
name: Test Devnet Functionality
on:
pull_request:
paths:
- 'charts/*/values.yaml'
- 'charts/*/templates/**'
- 'charts/*/ci/devnet-values.yaml'
workflow_dispatch:
jobs:
test-devnet:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
client:
# Execution clients
- besu
- erigon
- ethereumjs
- geth
- nethermind
- reth
# Consensus clients
- grandine
- lighthouse
- lodestar
- nimbus
- prysm
- teku
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Helm
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
with:
version: v3.18.4
- name: Create kind cluster
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
- name: Test devnet configuration exists
run: |
if [ ! -f "charts/${{ matrix.client }}/ci/devnet-values.yaml" ]; then
echo "❌ Missing devnet-values.yaml for ${{ matrix.client }}"
exit 1
fi
echo "✅ Found devnet-values.yaml for ${{ matrix.client }}"
- name: Validate devnet template rendering
run: |
echo "🔍 Testing devnet template rendering for ${{ matrix.client }}"
# Test with devnet disabled (default)
helm template test-default charts/${{ matrix.client }} > /tmp/default.yaml
# Test with devnet enabled
helm template test-devnet charts/${{ matrix.client }} -f charts/${{ matrix.client }}/ci/devnet-values.yaml > /tmp/devnet.yaml
# Verify devnet-specific configurations appear in the devnet template
if grep -q "devnet" /tmp/devnet.yaml; then
echo "✅ Devnet configuration found in template for ${{ matrix.client }}"
else
echo "⚠️ No devnet configuration found in template for ${{ matrix.client }} (may be conditional)"
fi
# Verify no devnet configuration in default template
if ! grep -q "devnet" /tmp/default.yaml; then
echo "✅ No devnet configuration in default template for ${{ matrix.client }}"
else
echo "❌ Unexpected devnet configuration in default template for ${{ matrix.client }}"
exit 1
fi
- name: Test devnet installation (dry-run)
run: |
echo "🚀 Testing devnet installation for ${{ matrix.client }}"
helm install test-devnet-${{ matrix.client }} charts/${{ matrix.client }} \
-f charts/${{ matrix.client }}/ci/devnet-values.yaml \
--dry-run \
--debug
- name: Verify devnet values structure
run: |
echo "📝 Verifying devnet values structure for ${{ matrix.client }}"
# Check that devnet section exists in values.yaml
if ! grep -q "^devnet:" charts/${{ matrix.client }}/values.yaml; then
echo "❌ Missing devnet section in values.yaml for ${{ matrix.client }}"
exit 1
fi
# Check that devnet is enabled in CI values
if ! grep -q "enabled: true" charts/${{ matrix.client }}/ci/devnet-values.yaml; then
echo "❌ Devnet not enabled in CI values for ${{ matrix.client }}"
exit 1
fi
echo "✅ Devnet values structure valid for ${{ matrix.client }}"
test-devnet-summary:
runs-on: ubuntu-latest
needs: test-devnet
if: always()
steps:
- name: Summary
run: |
echo "🎯 Devnet functionality testing complete"
echo "All Ethereum clients now support devnet configuration!"
echo ""
echo "To use devnet support, set:"
echo " devnet:"
echo " enabled: true"
echo " name: \"devnet-3\" # or your devnet name"