chore(clean) #19
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: 🔮 GitVoyant CI/CD | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| lint-and-format: | |
| name: 🔍 Lint & Format Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 📥 Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: 🐍 Set up Python 3.11 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - name: ⚡ Install UV | |
| run: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: 🔧 Bootstrap Environment | |
| run: make bootstrap | |
| - name: 🧪 Install Dev Dependencies | |
| run: make dev | |
| - name: 🔍 Run Linting | |
| run: make lint | |
| - name: ✨ Check Formatting | |
| run: | | |
| make format | |
| # Check if formatting changed anything | |
| git diff --exit-code || (echo "❌ Code is not properly formatted. Run 'make format' locally." && exit 1) | |
| test: | |
| name: 🧪 Test Suite | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ['3.11', '3.12'] | |
| steps: | |
| - name: 📥 Checkout Code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: 🐍 Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: ⚡ Install UV | |
| run: | | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| - name: 🔧 Bootstrap Environment | |
| run: make bootstrap | |
| - name: 🧪 Install Dev Dependencies | |
| run: make dev | |
| - name: 🔬 Run Unit Tests | |
| run: make test-unit | |
| - name: 🔗 Run Integration Tests | |
| env: | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| run: make test-integration | |
| # TODO: Fix CLI tests in future release | |
| # - name: 💻 Run CLI Tests | |
| # run: make test-cli | |
| - name: 📊 Generate Coverage Report (excluding CLI tests) | |
| env: | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| run: | | |
| # Run coverage excluding CLI tests | |
| PYTHONPATH=src .venv/bin/pytest --cov=gitvoyant --cov-report=term-missing --cov-fail-under=55 tests/unit tests/integration | |
| # TODO: Re-enable CLI integration tests in future release | |
| # cli-integration: | |
| # name: 🖥️ CLI Integration Test | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: 📥 Checkout Code | |
| # uses: actions/checkout@v4 | |
| # with: | |
| # fetch-depth: 0 | |
| # - name: 🐍 Set up Python 3.11 | |
| # uses: actions/setup-python@v4 | |
| # with: | |
| # python-version: '3.11' | |
| # - name: ⚡ Install UV | |
| # run: | | |
| # curl -LsSf https://astral.sh/uv/install.sh | sh | |
| # echo "$HOME/.cargo/bin" >> $GITHUB_PATH | |
| # - name: 🔧 Bootstrap Environment | |
| # run: make bootstrap | |
| # - name: 🧪 Test CLI Installation | |
| # run: | | |
| # source .venv/bin/activate | |
| # gitvoyant --help | |
| # gitvoyant version | |
| # - name: 🔮 Test Temporal Analysis | |
| # run: | | |
| # source .venv/bin/activate | |
| # # Test temporal analysis on this repo | |
| # gitvoyant analyze temporal . --window-days 30 | |
| # - name: 🤖 Test Agent Mode | |
| # env: | |
| # ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| # run: | | |
| # source .venv/bin/activate | |
| # # Test that agent can start (but don't run interactive session) | |
| # if [ -n "$ANTHROPIC_API_KEY" ]; then | |
| # echo "🤖 Testing agent mode with API key..." | |
| # timeout 10s gitvoyant analyze agent || true | |
| # else | |
| # echo "⚠️ Skipping agent tests - no API key available" | |
| # fi | |
| security: | |
| name: 🔒 Security Scan | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 📥 Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: 🐍 Set up Python 3.11 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - name: 🔒 Run Bandit Security Scan | |
| run: | | |
| pip install bandit[toml] | |
| bandit -r src/ -f json -o bandit-report.json || true | |
| - name: 📋 Upload Security Report | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: security-report | |
| path: bandit-report.json |