Bump google.golang.org/grpc from 1.70.0 to 1.79.3 in /proxy-nlb #57
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Integration & E2E Tests | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| jobs: | |
| api-integration-tests: | |
| name: API Server Integration Tests | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:14-alpine | |
| env: | |
| POSTGRES_DB: marchproxy_test | |
| POSTGRES_USER: marchproxy | |
| POSTGRES_PASSWORD: marchproxy | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| ports: | |
| - 5432:5432 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| cd api-server | |
| pip install -r requirements.txt | |
| pip install -r requirements-test.txt | |
| - name: Run integration tests | |
| env: | |
| TEST_DATABASE_URL: postgresql+asyncpg://marchproxy:marchproxy@localhost:5432/marchproxy_test | |
| run: | | |
| cd api-server | |
| pytest tests/integration/ -v --cov=app --cov-report=xml --cov-report=term | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| files: ./api-server/coverage.xml | |
| flags: api-integration | |
| name: api-integration-coverage | |
| webui-tests: | |
| name: WebUI Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| cache-dependency-path: webui/package-lock.json | |
| - name: Install dependencies | |
| run: | | |
| cd webui | |
| npm ci | |
| - name: Install Playwright browsers | |
| run: | | |
| cd webui | |
| npx playwright install --with-deps | |
| - name: Run Playwright tests | |
| run: | | |
| cd webui | |
| npm run test | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v3 | |
| with: | |
| name: playwright-report | |
| path: webui/playwright-report/ | |
| retention-days: 30 | |
| e2e-tests: | |
| name: End-to-End Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install dependencies | |
| run: | | |
| pip install -r tests/requirements.txt | |
| - name: Start services | |
| run: | | |
| docker-compose -f docker-compose.test.yml up -d | |
| sleep 30 | |
| - name: Run E2E tests | |
| run: | | |
| pytest tests/e2e/ -v -m e2e --html=reports/e2e-report.html | |
| - name: Upload E2E test results | |
| if: always() | |
| uses: actions/upload-artifact@v3 | |
| with: | |
| name: e2e-report | |
| path: reports/e2e-report.html | |
| retention-days: 30 | |
| - name: Stop services | |
| if: always() | |
| run: | | |
| docker-compose -f docker-compose.test.yml logs | |
| docker-compose -f docker-compose.test.yml down -v | |
| security-tests: | |
| name: Security Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install dependencies | |
| run: | | |
| pip install -r tests/requirements.txt | |
| - name: Run security tests | |
| run: | | |
| pytest tests/security/ -v -m security | |
| - name: Run Bandit security scan | |
| run: | | |
| bandit -r api-server/app -f json -o reports/bandit-report.json || true | |
| - name: Run Safety check | |
| run: | | |
| safety check --json --output reports/safety-report.json || true | |
| - name: Upload security reports | |
| if: always() | |
| uses: actions/upload-artifact@v3 | |
| with: | |
| name: security-reports | |
| path: reports/ | |
| retention-days: 30 |