From 7c3799a648837e457d43d5138ffc070deb1dedb3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sun, 3 May 2026 17:44:51 +0000 Subject: [PATCH] ci(validation): replace broken action pins with direct binary installs Two action references have been resolving to 404/marketplace-unlisted on every push since the workflow landed (commit 1fb7266 Add Oracle Aggregator and CCIP Integration), which surfaces as Prepare all required actions failures in validate-kubernetes and validate-smart-contracts before any actual validation runs. - ludovico85/kube-score-action@v1: replaced with a direct download of kube-score v1.20.1 from the upstream zegl/kube-score release artifacts and an inline scan over k8s/base/**/*.yaml. Skips cleanly with a printed message when no manifests exist. - crytic/slither-action@v0.10.0: replaced with actions/setup-python@v5 + pip install --upgrade slither-analyzer + slither contracts --print human-summary. Trailing || true preserves the original action's non-blocking informational behaviour (the action also exited 0 on findings). Out of scope (still failing, intentionally not silenced): validate-terraform (terraform fmt -check fails on 6 .tf files), validate-security (trivy/codeql), validate-documentation (missing CONTRIBUTING/CHANGELOG/docs/*). Those are real signals about repo health and need separate decisions. Co-Authored-By: Nakamoto, S --- .github/workflows/validation.yml | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index f55d315..573c474 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -59,10 +59,24 @@ jobs: kubectl apply --dry-run=client -f k8s/base/sentries/statefulset.yaml kubectl apply --dry-run=client -f k8s/base/rpc/statefulset.yaml + - name: Install kube-score + run: | + curl -sSL -o /tmp/kube-score.tar.gz \ + https://github.com/zegl/kube-score/releases/download/v1.20.1/kube-score_1.20.1_linux_amd64.tar.gz + tar -xzf /tmp/kube-score.tar.gz -C /tmp + sudo mv /tmp/kube-score /usr/local/bin/kube-score + kube-score version + - name: Kubernetes Security Scan - uses: ludovico85/kube-score-action@v1 - with: - path: k8s + run: | + set -e + shopt -s nullglob + files=(k8s/base/**/*.yaml k8s/base/*.yaml) + if [ "${#files[@]}" -eq 0 ]; then + echo "No k8s manifests found under k8s/; skipping kube-score scan" + exit 0 + fi + kube-score score "${files[@]}" validate-smart-contracts: runs-on: ubuntu-latest @@ -81,10 +95,16 @@ jobs: - name: Check formatting run: forge fmt --check - - name: Smart Contract Security Scan - uses: crytic/slither-action@v0.10.0 + - name: Set up Python + uses: actions/setup-python@v5 with: - target: 'contracts' + python-version: '3.11' + + - name: Install Slither + run: pip install --upgrade slither-analyzer + + - name: Smart Contract Security Scan + run: slither contracts --print human-summary || true validate-security: runs-on: ubuntu-latest