Files
Charon/scripts/README.md
GitHub Actions 8294d6ee49 Add QA test outputs, build scripts, and Dockerfile validation
- Created `qa-test-output-after-fix.txt` and `qa-test-output.txt` to log results of certificate page authentication tests.
- Added `build.sh` for deterministic backend builds in CI, utilizing `go list` for efficiency.
- Introduced `codeql_scan.sh` for CodeQL database creation and analysis for Go and JavaScript/TypeScript.
- Implemented `dockerfile_check.sh` to validate Dockerfiles for base image and package manager mismatches.
- Added `sourcery_precommit_wrapper.sh` to facilitate Sourcery CLI usage in pre-commit hooks.
2025-12-11 18:26:24 +00:00

49 lines
1.4 KiB
Markdown

# Scripts Directory
## Running Tests Locally Before Pushing to CI
### WAF Integration Test
**Always run this locally before pushing WAF-related changes to avoid CI failures:**
```bash
# From project root
bash ./scripts/coraza_integration.sh
```
Or use the VS Code task: `Ctrl+Shift+P``Tasks: Run Task``Coraza: Run Integration Script`
**Requirements:**
- Docker image `charon:local` must be built first:
```bash
docker build -t charon:local .
```
- The script will:
1. Start a test container with WAF enabled
2. Create a backend container (httpbin)
3. Test WAF in block mode (expect HTTP 403)
4. Test WAF in monitor mode (expect HTTP 200)
5. Clean up all test containers
**Expected output:**
```
✓ httpbin backend is ready
✓ Coraza WAF blocked payload as expected (HTTP 403) in BLOCK mode
✓ Coraza WAF in MONITOR mode allowed payload through (HTTP 200) as expected
=== All Coraza integration tests passed ===
```
### Other Test Scripts
- **Security Scan**: `bash ./scripts/security-scan.sh`
- **Go Test Coverage**: `bash ./scripts/go-test-coverage.sh`
- **Frontend Test Coverage**: `bash ./scripts/frontend-test-coverage.sh`
## CI/CD Workflows
Changes to these scripts may trigger CI workflows:
- `coraza_integration.sh` → WAF Integration Tests workflow
- Files in `.github/workflows/` directory control CI behavior
**Tip**: Run tests locally to save CI minutes and catch issues faster!