Skip to content

Commit e8de04b

Browse files
committed
Improve workflow pre-flight checks: show all failures and output to console
- Use 'shell: bash {0}' to disable -e flag and collect all failures - Use 'tee -a' to output to both console and step summary - Show helpful error message indicating which config is missing - Apply to all workflows: infra-verify, e2e-deployment, nightly-e2e-connected, nightly-e2e-disconnected
1 parent a86616e commit e8de04b

4 files changed

Lines changed: 144 additions & 70 deletions

File tree

.github/workflows/e2e-deployment.yml

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -116,43 +116,62 @@ jobs:
116116
- name: Pre-flight checks
117117
if: github.event_name == 'workflow_dispatch' || steps.filter.outputs.e2e == 'true'
118118
id: preflight
119+
shell: bash {0}
119120
run: |
120-
echo "## E2E Deployment Pre-flight Checks" >> $GITHUB_STEP_SUMMARY
121-
echo "" >> $GITHUB_STEP_SUMMARY
121+
set +e # Don't exit on first error, collect all failures
122+
FAILED=0
123+
124+
echo "## E2E Deployment Pre-flight Checks" | tee -a $GITHUB_STEP_SUMMARY
125+
echo "" | tee -a $GITHUB_STEP_SUMMARY
122126
123127
# Check required environment variables
124-
echo "### Environment Variables" >> $GITHUB_STEP_SUMMARY
128+
echo "### Environment Variables" | tee -a $GITHUB_STEP_SUMMARY
125129
if [ -z "$DEV_SCRIPTS_PATH" ]; then
126-
echo "❌ DEV_SCRIPTS_PATH not set" >> $GITHUB_STEP_SUMMARY
127-
exit 1
130+
echo "❌ DEV_SCRIPTS_PATH not set" | tee -a $GITHUB_STEP_SUMMARY
131+
FAILED=1
132+
else
133+
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" | tee -a $GITHUB_STEP_SUMMARY
128134
fi
129-
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" >> $GITHUB_STEP_SUMMARY
130135
131136
if [ -z "$WORKING_DIR" ]; then
132-
echo "❌ WORKING_DIR not set" >> $GITHUB_STEP_SUMMARY
133-
exit 1
137+
echo "❌ WORKING_DIR not set" | tee -a $GITHUB_STEP_SUMMARY
138+
FAILED=1
139+
else
140+
echo "✅ WORKING_DIR: $WORKING_DIR" | tee -a $GITHUB_STEP_SUMMARY
134141
fi
135-
echo "✅ WORKING_DIR: $WORKING_DIR" >> $GITHUB_STEP_SUMMARY
136142
137143
if [ -z "$PULL_SECRET" ]; then
138-
echo "❌ PULL_SECRET not set" >> $GITHUB_STEP_SUMMARY
139-
exit 1
144+
echo "❌ PULL_SECRET not set" | tee -a $GITHUB_STEP_SUMMARY
145+
FAILED=1
146+
else
147+
echo "✅ PULL_SECRET: configured" | tee -a $GITHUB_STEP_SUMMARY
140148
fi
141-
echo "✅ PULL_SECRET: configured" >> $GITHUB_STEP_SUMMARY
142149
143-
echo "✅ Deployment mode: $ENCLAVE_DEPLOYMENT_MODE" >> $GITHUB_STEP_SUMMARY
150+
echo "✅ Deployment mode: $ENCLAVE_DEPLOYMENT_MODE" | tee -a $GITHUB_STEP_SUMMARY
144151
145152
# Check system resources
146-
echo "" >> $GITHUB_STEP_SUMMARY
147-
echo "### System Resources" >> $GITHUB_STEP_SUMMARY
153+
echo "" | tee -a $GITHUB_STEP_SUMMARY
154+
echo "### System Resources" | tee -a $GITHUB_STEP_SUMMARY
148155
TOTAL_RAM=$(free -g | awk '/^Mem:/{print $2}')
149-
echo "✅ Total RAM: ${TOTAL_RAM}GB" >> $GITHUB_STEP_SUMMARY
156+
echo "✅ Total RAM: ${TOTAL_RAM}GB" | tee -a $GITHUB_STEP_SUMMARY
150157
151-
AVAILABLE_DISK=$(df -h $WORKING_DIR | awk 'NR==2{print $4}')
152-
echo "✅ Available disk space: $AVAILABLE_DISK" >> $GITHUB_STEP_SUMMARY
158+
if [ -n "$WORKING_DIR" ]; then
159+
AVAILABLE_DISK=$(df -h $WORKING_DIR 2>/dev/null | awk 'NR==2{print $4}')
160+
if [ -n "$AVAILABLE_DISK" ]; then
161+
echo "✅ Available disk space: $AVAILABLE_DISK" | tee -a $GITHUB_STEP_SUMMARY
162+
fi
163+
fi
153164
154-
echo "" >> $GITHUB_STEP_SUMMARY
155-
echo "✅ All pre-flight checks passed" >> $GITHUB_STEP_SUMMARY
165+
if [ $FAILED -eq 0 ]; then
166+
echo "" | tee -a $GITHUB_STEP_SUMMARY
167+
echo "✅ All pre-flight checks passed" | tee -a $GITHUB_STEP_SUMMARY
168+
else
169+
echo "" | tee -a $GITHUB_STEP_SUMMARY
170+
echo "❌ Pre-flight checks failed" | tee -a $GITHUB_STEP_SUMMARY
171+
echo "" | tee -a $GITHUB_STEP_SUMMARY
172+
echo "**Action Required**: Configure repository variables and secrets in Settings → Secrets and variables → Actions" | tee -a $GITHUB_STEP_SUMMARY
173+
exit 1
174+
fi
156175
157176
- name: Clean existing infrastructure
158177
if: github.event_name == 'workflow_dispatch' || steps.filter.outputs.e2e == 'true'

.github/workflows/infra-verify.yml

Lines changed: 41 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -68,46 +68,65 @@ jobs:
6868
6969
- name: Pre-flight checks
7070
id: preflight
71+
shell: bash {0}
7172
run: |
72-
echo "## Infrastructure Verification Pre-flight Checks" >> $GITHUB_STEP_SUMMARY
73-
echo "" >> $GITHUB_STEP_SUMMARY
73+
set +e # Don't exit on first error, collect all failures
74+
FAILED=0
75+
76+
echo "## Infrastructure Verification Pre-flight Checks" | tee -a $GITHUB_STEP_SUMMARY
77+
echo "" | tee -a $GITHUB_STEP_SUMMARY
7478
7579
# Check required environment variables
76-
echo "### Environment Variables" >> $GITHUB_STEP_SUMMARY
80+
echo "### Environment Variables" | tee -a $GITHUB_STEP_SUMMARY
7781
if [ -z "$DEV_SCRIPTS_PATH" ]; then
78-
echo "❌ DEV_SCRIPTS_PATH not set" >> $GITHUB_STEP_SUMMARY
79-
exit 1
82+
echo "❌ DEV_SCRIPTS_PATH not set" | tee -a $GITHUB_STEP_SUMMARY
83+
FAILED=1
84+
else
85+
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" | tee -a $GITHUB_STEP_SUMMARY
8086
fi
81-
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" >> $GITHUB_STEP_SUMMARY
8287
8388
if [ -z "$WORKING_DIR" ]; then
84-
echo "❌ WORKING_DIR not set" >> $GITHUB_STEP_SUMMARY
85-
exit 1
89+
echo "❌ WORKING_DIR not set" | tee -a $GITHUB_STEP_SUMMARY
90+
FAILED=1
91+
else
92+
echo "✅ WORKING_DIR: $WORKING_DIR" | tee -a $GITHUB_STEP_SUMMARY
8693
fi
87-
echo "✅ WORKING_DIR: $WORKING_DIR" >> $GITHUB_STEP_SUMMARY
88-
8994
9095
# Check system resources
91-
echo "" >> $GITHUB_STEP_SUMMARY
92-
echo "### System Resources" >> $GITHUB_STEP_SUMMARY
96+
echo "" | tee -a $GITHUB_STEP_SUMMARY
97+
echo "### System Resources" | tee -a $GITHUB_STEP_SUMMARY
9398
TOTAL_RAM=$(free -g | awk '/^Mem:/{print $2}')
94-
echo "✅ Total RAM: ${TOTAL_RAM}GB" >> $GITHUB_STEP_SUMMARY
99+
echo "✅ Total RAM: ${TOTAL_RAM}GB" | tee -a $GITHUB_STEP_SUMMARY
95100
96-
AVAILABLE_DISK=$(df -h $WORKING_DIR | awk 'NR==2{print $4}')
97-
echo "✅ Available disk space: $AVAILABLE_DISK" >> $GITHUB_STEP_SUMMARY
101+
if [ -n "$WORKING_DIR" ]; then
102+
AVAILABLE_DISK=$(df -h $WORKING_DIR 2>/dev/null | awk 'NR==2{print $4}')
103+
if [ -n "$AVAILABLE_DISK" ]; then
104+
echo "✅ Available disk space: $AVAILABLE_DISK" | tee -a $GITHUB_STEP_SUMMARY
105+
fi
106+
fi
98107
99108
# Check libvirt access
100-
echo "" >> $GITHUB_STEP_SUMMARY
101-
echo "### Libvirt Access" >> $GITHUB_STEP_SUMMARY
109+
echo "" | tee -a $GITHUB_STEP_SUMMARY
110+
echo "### Libvirt Access" | tee -a $GITHUB_STEP_SUMMARY
102111
if sudo virsh list --all > /dev/null 2>&1; then
103-
echo "✅ Libvirt access verified" >> $GITHUB_STEP_SUMMARY
112+
echo "✅ Libvirt access verified" | tee -a $GITHUB_STEP_SUMMARY
104113
else
105-
echo "❌ Cannot access libvirt" >> $GITHUB_STEP_SUMMARY
106-
exit 1
114+
echo "❌ Cannot access libvirt" | tee -a $GITHUB_STEP_SUMMARY
115+
FAILED=1
107116
fi
108117
109-
echo "" >> $GITHUB_STEP_SUMMARY
110-
echo "✅ All pre-flight checks passed" >> $GITHUB_STEP_SUMMARY
118+
if [ $FAILED -eq 0 ]; then
119+
echo "" | tee -a $GITHUB_STEP_SUMMARY
120+
echo "✅ All pre-flight checks passed" | tee -a $GITHUB_STEP_SUMMARY
121+
else
122+
echo "" | tee -a $GITHUB_STEP_SUMMARY
123+
echo "❌ Pre-flight checks failed" | tee -a $GITHUB_STEP_SUMMARY
124+
echo "" | tee -a $GITHUB_STEP_SUMMARY
125+
echo "**Action Required**: Configure repository variables in Settings → Secrets and variables → Actions → Variables:" | tee -a $GITHUB_STEP_SUMMARY
126+
echo "- DEV_SCRIPTS_PATH" | tee -a $GITHUB_STEP_SUMMARY
127+
echo "- WORKING_DIR" | tee -a $GITHUB_STEP_SUMMARY
128+
exit 1
129+
fi
111130
112131
- name: Create test infrastructure
113132
id: create_infra

.github/workflows/nightly-e2e-connected.yml

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,32 +45,50 @@ jobs:
4545

4646
- name: Pre-flight checks
4747
id: preflight
48+
shell: bash {0}
4849
run: |
49-
echo "## Nightly E2E Deployment - Connected Mode" >> $GITHUB_STEP_SUMMARY
50-
echo "" >> $GITHUB_STEP_SUMMARY
51-
echo "**Started at**: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
52-
echo "**Cluster name**: $ENCLAVE_CLUSTER_NAME" >> $GITHUB_STEP_SUMMARY
53-
echo "" >> $GITHUB_STEP_SUMMARY
50+
set +e # Don't exit on first error, collect all failures
51+
FAILED=0
52+
53+
echo "## Nightly E2E Deployment - Connected Mode" | tee -a $GITHUB_STEP_SUMMARY
54+
echo "" | tee -a $GITHUB_STEP_SUMMARY
55+
echo "**Started at**: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" | tee -a $GITHUB_STEP_SUMMARY
56+
echo "**Cluster name**: $ENCLAVE_CLUSTER_NAME" | tee -a $GITHUB_STEP_SUMMARY
57+
echo "" | tee -a $GITHUB_STEP_SUMMARY
5458
5559
# Check required environment variables
56-
echo "### Environment Variables" >> $GITHUB_STEP_SUMMARY
60+
echo "### Environment Variables" | tee -a $GITHUB_STEP_SUMMARY
5761
if [ -z "$DEV_SCRIPTS_PATH" ]; then
58-
echo "❌ DEV_SCRIPTS_PATH not set" >> $GITHUB_STEP_SUMMARY
59-
exit 1
62+
echo "❌ DEV_SCRIPTS_PATH not set" | tee -a $GITHUB_STEP_SUMMARY
63+
FAILED=1
64+
else
65+
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" | tee -a $GITHUB_STEP_SUMMARY
6066
fi
61-
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" >> $GITHUB_STEP_SUMMARY
6267
6368
if [ -z "$WORKING_DIR" ]; then
64-
echo "❌ WORKING_DIR not set" >> $GITHUB_STEP_SUMMARY
65-
exit 1
69+
echo "❌ WORKING_DIR not set" | tee -a $GITHUB_STEP_SUMMARY
70+
FAILED=1
71+
else
72+
echo "✅ WORKING_DIR: $WORKING_DIR" | tee -a $GITHUB_STEP_SUMMARY
6673
fi
67-
echo "✅ WORKING_DIR: $WORKING_DIR" >> $GITHUB_STEP_SUMMARY
6874
6975
if [ -z "$PULL_SECRET" ]; then
70-
echo "❌ PULL_SECRET not set" >> $GITHUB_STEP_SUMMARY
76+
echo "❌ PULL_SECRET not set" | tee -a $GITHUB_STEP_SUMMARY
77+
FAILED=1
78+
else
79+
echo "✅ PULL_SECRET configured" | tee -a $GITHUB_STEP_SUMMARY
80+
fi
81+
82+
if [ $FAILED -eq 0 ]; then
83+
echo "" | tee -a $GITHUB_STEP_SUMMARY
84+
echo "✅ All pre-flight checks passed" | tee -a $GITHUB_STEP_SUMMARY
85+
else
86+
echo "" | tee -a $GITHUB_STEP_SUMMARY
87+
echo "❌ Pre-flight checks failed" | tee -a $GITHUB_STEP_SUMMARY
88+
echo "" | tee -a $GITHUB_STEP_SUMMARY
89+
echo "**Action Required**: Configure repository variables and secrets in Settings → Secrets and variables → Actions" | tee -a $GITHUB_STEP_SUMMARY
7190
exit 1
7291
fi
73-
echo "✅ PULL_SECRET configured" >> $GITHUB_STEP_SUMMARY
7492
7593
- name: Clean infrastructure
7694
id: clean

.github/workflows/nightly-e2e-disconnected.yml

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,32 +45,50 @@ jobs:
4545

4646
- name: Pre-flight checks
4747
id: preflight
48+
shell: bash {0}
4849
run: |
49-
echo "## Nightly E2E Deployment - Disconnected Mode" >> $GITHUB_STEP_SUMMARY
50-
echo "" >> $GITHUB_STEP_SUMMARY
51-
echo "**Started at**: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
52-
echo "**Cluster name**: $ENCLAVE_CLUSTER_NAME" >> $GITHUB_STEP_SUMMARY
53-
echo "" >> $GITHUB_STEP_SUMMARY
50+
set +e # Don't exit on first error, collect all failures
51+
FAILED=0
52+
53+
echo "## Nightly E2E Deployment - Disconnected Mode" | tee -a $GITHUB_STEP_SUMMARY
54+
echo "" | tee -a $GITHUB_STEP_SUMMARY
55+
echo "**Started at**: $(date -u '+%Y-%m-%d %H:%M:%S UTC')" | tee -a $GITHUB_STEP_SUMMARY
56+
echo "**Cluster name**: $ENCLAVE_CLUSTER_NAME" | tee -a $GITHUB_STEP_SUMMARY
57+
echo "" | tee -a $GITHUB_STEP_SUMMARY
5458
5559
# Check required environment variables
56-
echo "### Environment Variables" >> $GITHUB_STEP_SUMMARY
60+
echo "### Environment Variables" | tee -a $GITHUB_STEP_SUMMARY
5761
if [ -z "$DEV_SCRIPTS_PATH" ]; then
58-
echo "❌ DEV_SCRIPTS_PATH not set" >> $GITHUB_STEP_SUMMARY
59-
exit 1
62+
echo "❌ DEV_SCRIPTS_PATH not set" | tee -a $GITHUB_STEP_SUMMARY
63+
FAILED=1
64+
else
65+
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" | tee -a $GITHUB_STEP_SUMMARY
6066
fi
61-
echo "✅ DEV_SCRIPTS_PATH: $DEV_SCRIPTS_PATH" >> $GITHUB_STEP_SUMMARY
6267
6368
if [ -z "$WORKING_DIR" ]; then
64-
echo "❌ WORKING_DIR not set" >> $GITHUB_STEP_SUMMARY
65-
exit 1
69+
echo "❌ WORKING_DIR not set" | tee -a $GITHUB_STEP_SUMMARY
70+
FAILED=1
71+
else
72+
echo "✅ WORKING_DIR: $WORKING_DIR" | tee -a $GITHUB_STEP_SUMMARY
6673
fi
67-
echo "✅ WORKING_DIR: $WORKING_DIR" >> $GITHUB_STEP_SUMMARY
6874
6975
if [ -z "$PULL_SECRET" ]; then
70-
echo "❌ PULL_SECRET not set" >> $GITHUB_STEP_SUMMARY
76+
echo "❌ PULL_SECRET not set" | tee -a $GITHUB_STEP_SUMMARY
77+
FAILED=1
78+
else
79+
echo "✅ PULL_SECRET configured" | tee -a $GITHUB_STEP_SUMMARY
80+
fi
81+
82+
if [ $FAILED -eq 0 ]; then
83+
echo "" | tee -a $GITHUB_STEP_SUMMARY
84+
echo "✅ All pre-flight checks passed" | tee -a $GITHUB_STEP_SUMMARY
85+
else
86+
echo "" | tee -a $GITHUB_STEP_SUMMARY
87+
echo "❌ Pre-flight checks failed" | tee -a $GITHUB_STEP_SUMMARY
88+
echo "" | tee -a $GITHUB_STEP_SUMMARY
89+
echo "**Action Required**: Configure repository variables and secrets in Settings → Secrets and variables → Actions" | tee -a $GITHUB_STEP_SUMMARY
7190
exit 1
7291
fi
73-
echo "✅ PULL_SECRET configured" >> $GITHUB_STEP_SUMMARY
7492
7593
- name: Clean infrastructure
7694
id: clean

0 commit comments

Comments
 (0)