Skip to content

security scan on every monday #2

security scan on every monday

security scan on every monday #2

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
test:
name: Test & Build
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: Cache dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Check ML model exists
run: |
if [ ! -f "models/terrasecure_production_v1.0.pkl" ]; then
echo " ML model not found, building..."
python scripts/build_production_model.py
else
echo " ML model found"
fi
- name: Run linting
run: |
pip install flake8
flake8 src --count --select=E9,F63,F7,F82 --show-source --statistics
continue-on-error: true
- name: Run tests
run: |
pip install pytest pytest-cov
pytest tests/ -v --tb=short || echo " Some tests failed but continuing"
continue-on-error: true
- name: Test CLI
run: |
python src/cli.py --help
python src/cli.py examples/vulnerable --format json --output test-results.json
- name: Upload test results
uses: actions/upload-artifact@v3
if: always()
with:
name: test-results
path: test-results.json
- name: Display summary
run: |
echo " CI/CD Pipeline Complete"
echo " Test results saved to artifacts"
docker:
name: Build Docker Image
runs-on: ubuntu-latest
needs: test
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker image
run: |
docker build -t terrasecure:test .
- name: Test Docker image
run: |
docker run --rm terrasecure:test --help
- name: Docker summary
run: |
echo " Docker image built successfully"
docker images terrasecure:test