- Updated CI workflow to provide clearer notifications on test results and deployment readiness. - Added a new job in the deployment workflow to check the status of the last CI run before proceeding with deployment, ensuring that only successful builds are deployed.
67 lines
2.0 KiB
YAML
67 lines
2.0 KiB
YAML
name: CI - Infrastructure Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, develop, 'feature/**' ]
|
|
pull_request:
|
|
branches: [ main, develop ]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
name: Run Infrastructure Tests
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python 3.11
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
cache: 'pip'
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r tests/infra/requirements-test.txt
|
|
|
|
- name: Run infrastructure tests
|
|
run: |
|
|
python -m pytest tests/infra/ -v --tb=short
|
|
|
|
- name: Validate Prometheus config
|
|
run: |
|
|
python -m pytest tests/infra/test_prometheus_config.py -v
|
|
|
|
- name: Upload test results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-results
|
|
path: |
|
|
.pytest_cache/
|
|
htmlcov/
|
|
retention-days: 7
|
|
|
|
- name: Send test results notification
|
|
if: always()
|
|
uses: appleboy/telegram-action@v1.0.0
|
|
with:
|
|
to: ${{ secrets.TELEGRAM_CHAT_ID }}
|
|
token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
|
|
message: |
|
|
🧪 CI Tests ${{ job.status }}
|
|
|
|
Repository: prod
|
|
Branch: ${{ github.ref_name }}
|
|
Commit: ${{ github.sha }}
|
|
Author: ${{ github.actor }}
|
|
|
|
${{ job.status == 'success' && '✅ All tests passed! Ready for deployment.' || '❌ Tests failed! Deployment blocked.' }}
|
|
|
|
${{ job.status == 'success' && format('🚀 You can now deploy manually: {0}/{1}/actions/workflows/deploy.yml', github.server_url, github.repository) || '' }}
|
|
|
|
View details: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
continue-on-error: true
|