#!/bin/bash set -e echo "Validating Renovate configuration..." renovate-config-validator echo "Running Renovate dry-run..." renovate --dry-run=full > renovate-output.log 2>&1 cat renovate-output.log # Assertions echo "Checking for successful run..." if ! grep -q "Repository finished" renovate-output.log; then echo "Error: Renovate run did not finish successfully." exit 1 fi echo "Checking for errors..." if grep -q "ERROR" renovate-output.log; then echo "Error: Renovate log contains errors." exit 1 fi # Specific assertions based on the test repo state echo "Checking for expected nginx update..." if ! grep -q "renovate/nginx-1.x" renovate-output.log; then echo "Error: Expected 'renovate/nginx-1.x' branch not found in output." exit 1 fi echo "Checking for nginx PR title..." if ! grep -q "Update nginx Docker tag to v1.29.3" renovate-output.log; then echo "Error: Expected PR title 'Update nginx Docker tag to v1.29.3' not found." exit 1 fi echo "Checking for expected actions/checkout update..." if ! grep -q "renovate/actions-checkout-6.x" renovate-output.log; then echo "Error: Expected 'renovate/actions-checkout-6.x' branch not found in output." exit 1 fi echo "Checking for actions/checkout PR title..." if ! grep -q "Update actions/checkout action to v6" renovate-output.log; then echo "Error: Expected PR title 'Update actions/checkout action to v6' not found." exit 1 fi echo "Checking for onboarding PR..." if ! grep -q "Would create onboarding PR" renovate-output.log; then echo "Error: Expected onboarding PR creation not found." exit 1 fi echo "Test passed!" rm renovate-output.log