Skip to content

Commit 9a0da7d

Browse files
ci: fix hybrid system test for prod-script changes and k3d install (#14317)
- Exclude glob 'scripts/prod/**/*' missed top-level files under fnmatch; use 'scripts/prod/**' so prod-script-only PRs skip this infra-heavy test. - Quote the trigger interpolations so a glob value isn't shell-expanded before reaching check_test_trigger.py. - Pin k3d-version=v5.5.0 (action input): the default v5.4.6 predates the checksums.txt release asset the current k3d install.sh fetches with --fail, causing a 404. - Wait on the local-path-provisioner Deployment rollout instead of a racy pod-label wait that errored 'no matching resources found'. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 4cd57f7 commit 9a0da7d

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

.github/workflows/hybrid_system_test.yaml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ env:
1616
cluster_name: hybrid-system-test
1717
crate_triggers: "apollo_node,apollo_deployments,apollo_integration_tests"
1818
path_triggers: ".github/workflows/hybrid_system_test.yaml,scripts/**,deployments/sequencer/**,deployments/images/**"
19-
path_triggers_exclude: "scripts/prod/**/*"
19+
path_triggers_exclude: "scripts/prod/**"
2020
pvc_storage_class_name: "premium-rwo"
2121
anvil_port: "8545"
2222
dockerfile_base_path: ./deployments/images/sequencer
@@ -74,10 +74,10 @@ jobs:
7474
OUTPUT_FILE=$(mktemp)
7575
7676
python ./scripts/check_test_trigger.py --output_file $OUTPUT_FILE \
77-
--commit_id ${{ github.event.pull_request.base.sha }} \
78-
--crate_triggers ${{ env.crate_triggers }} \
79-
--path_triggers ${{ env.path_triggers }} \
80-
--path_triggers_exclude ${{ env.path_triggers_exclude }}
77+
--commit_id "${{ github.event.pull_request.base.sha }}" \
78+
--crate_triggers "${{ env.crate_triggers }}" \
79+
--path_triggers "${{ env.path_triggers }}" \
80+
--path_triggers_exclude "${{ env.path_triggers_exclude }}"
8181
8282
should_run=$(cat "$OUTPUT_FILE")
8383
echo "Captured output: $should_run"
@@ -147,6 +147,12 @@ jobs:
147147
- name: Create k3d cluster (Local k8s)
148148
uses: AbsaOSS/k3d-action@v2.4.0
149149
with:
150+
# Pin k3d explicitly: the action's default (v5.4.6) predates the checksums.txt release
151+
# asset that the current k3d install.sh fetches (with --fail), so its install 404s. v5.5.0
152+
# is the earliest release that ships checksums.txt (smallest bump from the old default).
153+
# Must be the k3d-version input (the composite action maps it to K3D_VERSION); a plain env
154+
# var is overridden by the action's own empty input default.
155+
k3d-version: v5.5.0
150156
# Assumption: only one PR can run per machine at a time.
151157
cluster-name: ${{ env.cluster_name }}
152158
args: >-
@@ -169,8 +175,11 @@ jobs:
169175
echo "🔧 Installing local-path-provisioner..."
170176
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
171177
172-
echo "⏳ Waiting for local-path-provisioner pod to be ready..."
173-
kubectl wait --for=condition=Ready pod -l app=local-path-provisioner -n local-path-storage --timeout=60s
178+
echo "⏳ Waiting for local-path-provisioner to be ready..."
179+
# Wait on the Deployment rollout rather than `kubectl wait -l <pod-label>`: `apply` creates
180+
# the Deployment synchronously, but the Pod is created asynchronously by its ReplicaSet, so
181+
# a pod-label wait races and errors with "no matching resources found".
182+
kubectl rollout status deployment/local-path-provisioner -n local-path-storage --timeout=120s
174183
175184
echo "✅ local-path-provisioner is ready."
176185

0 commit comments

Comments
 (0)