From 96c634addcc8350c22dee60e968f9429e663100a Mon Sep 17 00:00:00 2001 From: fab Date: Tue, 7 Jan 2025 18:47:00 +0100 Subject: [PATCH] Update nginx.yml --- .github/workflows/nginx.yml | 64 +++++++++++++++++++++++++++++++++---- 1 file changed, 58 insertions(+), 6 deletions(-) diff --git a/.github/workflows/nginx.yml b/.github/workflows/nginx.yml index 934f71d..4fcb87f 100644 --- a/.github/workflows/nginx.yml +++ b/.github/workflows/nginx.yml @@ -14,36 +14,88 @@ jobs: runs-on: ubuntu-latest steps: + # Step 1: Checkout repository - name: Checkout repository uses: actions/checkout@v3 + # Step 2: Install essential tools (bash, sudo, etc.) + - name: Install essential tools + run: | + sudo apt-get update + sudo apt-get install -y bash sudo python3-pip + + # Step 3: Set up Python - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9' - - name: Install dependencies + # Step 4: Install Python dependencies + - name: Install Python dependencies run: | python -m pip install --upgrade pip - pip install -r requirements.txt + pip install -r patterns/requirements.txt + # Step 5: Validate Python dependencies + - name: Validate Python dependencies + run: | + pip check + echo "Python dependencies validated successfully." + + # Step 6: Run OWASP scraper - name: Run OWASP scraper run: python owasp.py - working-directory: ./patterns # Change to the correct directory + working-directory: patterns + continue-on-error: false # Fail the workflow if this step fails + # Step 7: Validate OWASP scraper output + - name: Validate OWASP scraper output + run: | + if [ -f "patterns/waf_patterns/nginx/*.conf" ]; then + echo "OWASP scraper output validated successfully." + else + echo "Error: No Nginx configuration files found." + exit 1 + fi + working-directory: patterns + + # Step 8: Convert OWASP rules to Nginx config - name: Convert OWASP rules to Nginx config run: python owasp2nginx.py - working-directory: ./patterns # Change to the correct directory + working-directory: patterns + continue-on-error: false # Fail the workflow if this step fails + # Step 9: Validate Nginx config files + - name: Validate Nginx config files + run: | + if [ -f "patterns/waf_patterns/nginx/*.conf" ]; then + echo "Nginx configuration files validated successfully." + else + echo "Error: No Nginx configuration files found." + exit 1 + fi + working-directory: patterns + + # Step 10: Install Nginx - name: Install Nginx run: | sudo apt-get update sudo apt-get install -y nginx + # Step 11: Validate Nginx installation + - name: Validate Nginx installation + run: | + nginx -v + echo "Nginx installed successfully." + + # Step 12: Import Nginx config - name: Import Nginx config run: python import2nginx.py - working-directory: ./patterns # Change to the correct directory + working-directory: patterns + continue-on-error: false # Fail the workflow if this step fails + # Step 13: Validate Nginx configuration - name: Validate Nginx configuration run: | - nginx -t -c /etc/nginx/nginx.conf + sudo nginx -t -c /etc/nginx/nginx.conf + echo "Nginx configuration validated successfully."