From bfea4062d86b759dd3d7a03a1d8a9c14d6b453be Mon Sep 17 00:00:00 2001 From: "w. ian douglas" Date: Thu, 28 Aug 2025 17:15:51 -0600 Subject: [PATCH] Iand/updating recipe validation workflow (#4403) --- .github/workflows/recipe-security-scanner.yml | 23 ++++++++++++++----- .github/workflows/validate-recipe-pr.yml | 1 + 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.github/workflows/recipe-security-scanner.yml b/.github/workflows/recipe-security-scanner.yml index 3d6e3945..9f004ea1 100644 --- a/.github/workflows/recipe-security-scanner.yml +++ b/.github/workflows/recipe-security-scanner.yml @@ -64,22 +64,33 @@ jobs: if: steps.recipe_changes.outputs.recipe_files_changed == 'true' run: sudo apt-get update && sudo apt-get install -y jq - - name: Find recipe files in PR + - name: Find changed recipe files in PR id: find_recipes if: steps.recipe_changes.outputs.recipe_files_changed == 'true' run: | set -e - echo "Looking for recipe files in PR..." + echo "Looking for changed recipe files in PR..." - # Find all .yaml/.yml files in the recipes directory - RECIPE_FILES=$(find documentation/src/pages/recipes/data/recipes/ -name "*.yaml" -o -name "*.yml" 2>/dev/null || true) + # Get the list of changed files in this PR + if [ "${{ github.event_name }}" = "pull_request" ] && [ "${{ github.event.action }}" = "synchronize" ]; then + # For synchronize events, check files changed since the previous commit + echo "📝 Synchronize event - checking files changed since previous commit" + CHANGED_FILES=$(git diff --name-only ${{ github.event.before }}..${{ github.event.after }}) + else + # For opened/reopened, check all files in the PR + echo "📝 PR opened/reopened - checking all files in PR" + CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}..HEAD) + fi + + # Filter for recipe files only that were changed + RECIPE_FILES=$(echo "$CHANGED_FILES" | grep "^documentation/src/pages/recipes/data/recipes/" | grep -E "\.(yaml|yml)$" || true) if [ -z "$RECIPE_FILES" ]; then - echo "No recipe files found in PR" + echo "No changed recipe files found in PR" echo "has_recipes=false" >> "$GITHUB_OUTPUT" echo "recipe_count=0" >> "$GITHUB_OUTPUT" else - echo "Found recipe files:" + echo "Found changed recipe files:" echo "$RECIPE_FILES" RECIPE_COUNT=$(echo "$RECIPE_FILES" | wc -l) echo "has_recipes=true" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/validate-recipe-pr.yml b/.github/workflows/validate-recipe-pr.yml index fd6b1422..47265a94 100644 --- a/.github/workflows/validate-recipe-pr.yml +++ b/.github/workflows/validate-recipe-pr.yml @@ -22,6 +22,7 @@ jobs: uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 - name: Set up Node.js uses: actions/setup-node@v3