|
19 | 19 | # Discord + Slack coverage with cross-talk assertions. See issue #1903. |
20 | 20 | # sandbox-survival-e2e Sandbox survival across gateway restarts (onboard, inference, |
21 | 21 | # gateway stop/start, verify sandbox + workspace + inference). |
| 22 | +# openshell-gateway-upgrade-e2e |
| 23 | +# Validates stale Linux Docker-driver OpenShell gateway |
| 24 | +# processes are restarted after an OpenShell upgrade. |
22 | 25 | # hermes-e2e Hermes Agent E2E — install → onboard --agent hermes → health |
23 | 26 | # probe → live inference. Validates the multi-agent architecture. |
24 | 27 | # hermes-discord-e2e Hermes Discord onboarding — validates the top-level Hermes |
|
58 | 61 | messaging-compatible-endpoint-e2e, |
59 | 62 | kimi-inference-compat-e2e, |
60 | 63 | token-rotation-e2e, sandbox-survival-e2e, |
| 64 | + openshell-gateway-upgrade-e2e, |
61 | 65 | issue-2478-crash-loop-recovery-e2e, hermes-e2e, hermes-discord-e2e, |
62 | 66 | hermes-slack-e2e, sandbox-operations-e2e, inference-routing-e2e, |
63 | 67 | network-policy-e2e, deployment-services-e2e, diagnostics-e2e, |
@@ -1126,6 +1130,45 @@ jobs: |
1126 | 1130 | /tmp/nemoclaw-e2e-upgrade-install.log |
1127 | 1131 | if-no-files-found: ignore |
1128 | 1132 |
|
| 1133 | + # ── OpenShell gateway upgrade E2E ──────────────────────────── |
| 1134 | + # Reproduces the old-install upgrade edge case for Linux Docker-driver |
| 1135 | + # gateways: a healthy gateway process with stale supervisor/runtime env must |
| 1136 | + # be restarted rather than reused after the current OpenShell install. |
| 1137 | + openshell-gateway-upgrade-e2e: |
| 1138 | + if: >- |
| 1139 | + github.repository == 'NVIDIA/NemoClaw' && |
| 1140 | + (github.event_name != 'workflow_dispatch' || |
| 1141 | + inputs.jobs == '' || |
| 1142 | + contains(format(',{0},', inputs.jobs), ',openshell-gateway-upgrade-e2e,')) |
| 1143 | + runs-on: ubuntu-latest |
| 1144 | + timeout-minutes: 30 |
| 1145 | + steps: |
| 1146 | + - name: Checkout |
| 1147 | + uses: actions/checkout@v6 |
| 1148 | + |
| 1149 | + - name: Setup Node |
| 1150 | + uses: actions/setup-node@v6 |
| 1151 | + with: |
| 1152 | + node-version: "22" |
| 1153 | + |
| 1154 | + - name: Run OpenShell gateway upgrade E2E test |
| 1155 | + env: |
| 1156 | + GITHUB_TOKEN: ${{ github.token }} |
| 1157 | + NEMOCLAW_NON_INTERACTIVE: "1" |
| 1158 | + NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1" |
| 1159 | + run: bash test/e2e/test-openshell-gateway-upgrade.sh |
| 1160 | + |
| 1161 | + - name: Upload gateway upgrade logs on failure |
| 1162 | + if: failure() |
| 1163 | + uses: actions/upload-artifact@v4 |
| 1164 | + with: |
| 1165 | + name: openshell-gateway-upgrade-logs |
| 1166 | + path: | |
| 1167 | + /tmp/nemoclaw-e2e-openshell-gateway-upgrade.log |
| 1168 | + /tmp/nemoclaw-e2e-openshell-gateway-start.log |
| 1169 | + /tmp/nemoclaw-e2e-openshell-gateway-process.log |
| 1170 | + if-no-files-found: ignore |
| 1171 | + |
1129 | 1172 | # ── Hermes rebuild upgrade E2E ────────────────────────────── |
1130 | 1173 | # Same upgrade scenario as OpenClaw but for Hermes Agent. |
1131 | 1174 | rebuild-hermes-e2e: |
@@ -1209,12 +1252,14 @@ jobs: |
1209 | 1252 | NVIDIA_API_KEY: ${{ secrets.NVIDIA_API_KEY }} |
1210 | 1253 | NEMOCLAW_NON_INTERACTIVE: "1" |
1211 | 1254 | NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1" |
| 1255 | + NEMOCLAW_SANDBOX_NAME: "e2e-double-install" |
1212 | 1256 | run: bash install.sh --non-interactive --yes-i-accept-third-party-software |
1213 | 1257 | - name: Run double onboard E2E test |
1214 | 1258 | env: |
1215 | 1259 | NVIDIA_API_KEY: ${{ secrets.NVIDIA_API_KEY }} |
1216 | 1260 | NEMOCLAW_NON_INTERACTIVE: "1" |
1217 | 1261 | NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1" |
| 1262 | + NEMOCLAW_E2E_INSTALL_SANDBOX_NAME: "e2e-double-install" |
1218 | 1263 | run: | |
1219 | 1264 | [ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc" 2>/dev/null || true |
1220 | 1265 | export NVM_DIR="${NVM_DIR:-$HOME/.nvm}" |
@@ -1246,12 +1291,14 @@ jobs: |
1246 | 1291 | NVIDIA_API_KEY: ${{ secrets.NVIDIA_API_KEY }} |
1247 | 1292 | NEMOCLAW_NON_INTERACTIVE: "1" |
1248 | 1293 | NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1" |
| 1294 | + NEMOCLAW_SANDBOX_NAME: "e2e-repair-install" |
1249 | 1295 | run: bash install.sh --non-interactive --yes-i-accept-third-party-software |
1250 | 1296 | - name: Run onboard repair E2E test |
1251 | 1297 | env: |
1252 | 1298 | NVIDIA_API_KEY: ${{ secrets.NVIDIA_API_KEY }} |
1253 | 1299 | NEMOCLAW_NON_INTERACTIVE: "1" |
1254 | 1300 | NEMOCLAW_ACCEPT_THIRD_PARTY_SOFTWARE: "1" |
| 1301 | + NEMOCLAW_E2E_INSTALL_SANDBOX_NAME: "e2e-repair-install" |
1255 | 1302 | run: | |
1256 | 1303 | [ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc" 2>/dev/null || true |
1257 | 1304 | export NVM_DIR="${NVM_DIR:-$HOME/.nvm}" |
@@ -1689,6 +1736,7 @@ jobs: |
1689 | 1736 | shields-config-e2e, |
1690 | 1737 | rebuild-openclaw-e2e, |
1691 | 1738 | upgrade-stale-sandbox-e2e, |
| 1739 | + openshell-gateway-upgrade-e2e, |
1692 | 1740 | rebuild-hermes-e2e, |
1693 | 1741 | rebuild-hermes-stale-base-e2e, |
1694 | 1742 | double-onboard-e2e, |
@@ -1776,6 +1824,7 @@ jobs: |
1776 | 1824 | shields-config-e2e, |
1777 | 1825 | rebuild-openclaw-e2e, |
1778 | 1826 | upgrade-stale-sandbox-e2e, |
| 1827 | + openshell-gateway-upgrade-e2e, |
1779 | 1828 | rebuild-hermes-e2e, |
1780 | 1829 | rebuild-hermes-stale-base-e2e, |
1781 | 1830 | double-onboard-e2e, |
@@ -1911,6 +1960,7 @@ jobs: |
1911 | 1960 | shields-config-e2e, |
1912 | 1961 | rebuild-openclaw-e2e, |
1913 | 1962 | upgrade-stale-sandbox-e2e, |
| 1963 | + openshell-gateway-upgrade-e2e, |
1914 | 1964 | rebuild-hermes-e2e, |
1915 | 1965 | rebuild-hermes-stale-base-e2e, |
1916 | 1966 | double-onboard-e2e, |
|
0 commit comments