Skip to content

Bump ruff from 0.12.4 to 0.13.1 #116

Bump ruff from 0.12.4 to 0.13.1

Bump ruff from 0.12.4 to 0.13.1 #116

Workflow file for this run

name: End-to-End Tests
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
workflow_dispatch:
permissions:
contents: read
jobs:
e2e-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Set up Python 3.12
run: uv python install 3.12
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Install OpenSSL for certificate validation
run: |
sudo apt-get update
sudo apt-get install -y openssl
- name: Check Secret Availability
id: check-secrets
run: |
if [[ -n "${{ secrets.TLS_CERTIFICATE }}" ]] && [[ -n "${{ secrets.TLS_PRIVATE_KEY }}" ]]; then
echo "secrets-available=true" >> $GITHUB_OUTPUT
echo "✅ TLS secrets are available - full E2E tests will run"
else
echo "secrets-available=false" >> $GITHUB_OUTPUT
echo "⚠️ TLS secrets not available (likely Dependabot PR) - E2E tests will be skipped"
echo "🔍 Secret source: ${{ github.event.pull_request.head.repo.full_name != github.repository && 'External' || 'Actions' }}"
fi
- name: Display Certificate Information
if: steps.check-secrets.outputs.secrets-available == 'true'
env:
TLS_CERTIFICATE: ${{ secrets.TLS_CERTIFICATE }}
run: |
echo "📋 TLS Certificate Information"
echo "=============================="
echo "🏢 Certificate Issuer Information:"
echo "$TLS_CERTIFICATE" | openssl x509 -noout -issuer | sed 's/issuer=/ /'
echo "🌐 Certificate Subject:"
echo "$TLS_CERTIFICATE" | openssl x509 -noout -subject | sed 's/subject=/ /'
echo "📅 Certificate Validity:"
echo " Valid From: $(echo "$TLS_CERTIFICATE" | openssl x509 -noout -startdate | cut -d= -f2)"
echo " Valid Until: $(echo "$TLS_CERTIFICATE" | openssl x509 -noout -enddate | cut -d= -f2)"
echo "🔐 Certificate Details:"
echo " Algorithm: $(echo "$TLS_CERTIFICATE" | openssl x509 -noout -text | grep "Signature Algorithm" | head -1 | sed 's/.*Signature Algorithm: / /')"
echo " Key Type: $(echo "$TLS_CERTIFICATE" | openssl x509 -noout -text | grep "Public Key Algorithm" | sed 's/.*Public Key Algorithm: / /')"
echo ""
- name: Make test scripts executable
run: chmod +x src/demo_client/scripts/*.sh
- name: Run End-to-End TLS Authentication Test
if: steps.check-secrets.outputs.secrets-available == 'true'
env:
TLS_CERTIFICATE: ${{ secrets.TLS_CERTIFICATE }}
TLS_PRIVATE_KEY: ${{ secrets.TLS_PRIVATE_KEY }}
run: |
cd src/demo_client
source ../../.venv/bin/activate
PYTHONPATH=../.. ./scripts/test_tls_auth.sh
- name: Skip E2E Tests (Secrets Not Available)
if: steps.check-secrets.outputs.secrets-available == 'false'
run: |
echo "⏭️ Skipping E2E TLS tests - secrets not available"
echo "📝 This is expected for:"
echo " • Dependabot pull requests"
echo " • External contributor pull requests"
echo " • Repository forks"
echo ""
echo "✅ Unit tests have already passed - basic functionality is verified"
echo "🔒 TLS E2E tests will run when this PR is merged or when secrets are available"
- name: Upload test logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: e2e-test-logs
path: |
server_test.log
src/demo_client/*.log
*.log
retention-days: 7