mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
100 lines
2.8 KiB
YAML
Executable File
100 lines
2.8 KiB
YAML
Executable File
name: Code checks
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
tags:
|
|
- '*.*.*'
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
check-url-paths:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Check for incorrect absolute '/php/' URLs in frontend code
|
|
run: |
|
|
echo "🔍 Checking for incorrect absolute '/php/' URLs (should be 'php/' or './php/')..."
|
|
|
|
MATCHES=$(grep -rE "['\"]/php/" --include=\*.{js,php,html} ./front \
|
|
| grep -E "\.get|\.post|\.ajax|fetch|url\s*:") || true
|
|
|
|
if [ -n "$MATCHES" ]; then
|
|
echo "$MATCHES"
|
|
echo "❌ Found incorrectly absolute '/php/' URLs. Use 'php/' or './php/' for relative paths."
|
|
exit 1
|
|
else
|
|
echo "✅ No bad '/php/' URLs found."
|
|
fi
|
|
|
|
|
|
|
|
- name: Check Python syntax
|
|
run: |
|
|
set -e
|
|
echo "🔍 Checking Python syntax..."
|
|
find . -name "*.py" -print0 | xargs -0 -n1 python3 -m py_compile
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install linting tools
|
|
run: |
|
|
# Python linting
|
|
pip install flake8
|
|
# Docker linting
|
|
wget -O /tmp/hadolint https://github.com/hadolint/hadolint/releases/latest/download/hadolint-Linux-x86_64
|
|
chmod +x /tmp/hadolint
|
|
# PHP and shellcheck for syntax checking
|
|
sudo apt-get update && sudo apt-get install -y php-cli shellcheck
|
|
|
|
- name: Shell check
|
|
continue-on-error: true
|
|
run: |
|
|
echo "🔍 Checking shell scripts..."
|
|
find . -name "*.sh" -exec shellcheck {} \;
|
|
|
|
- name: Python lint
|
|
continue-on-error: true
|
|
run: |
|
|
echo "🔍 Linting Python code..."
|
|
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
|
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
|
|
|
- name: PHP check
|
|
continue-on-error: true
|
|
run: |
|
|
echo "🔍 Checking PHP syntax..."
|
|
find . -name "*.php" -exec php -l {} \;
|
|
|
|
- name: Docker lint
|
|
continue-on-error: true
|
|
run: |
|
|
echo "🔍 Linting Dockerfiles..."
|
|
/tmp/hadolint --config .hadolint.yaml Dockerfile* || true
|
|
|
|
docker-tests:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Run Docker-based tests
|
|
run: |
|
|
echo "🐳 Running Docker-based tests..."
|
|
chmod +x ./test/docker_tests/run_docker_tests.sh
|
|
./test/docker_tests/run_docker_tests.sh
|