Delete update_all.bat #5
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: 🏗️ Build Secure Pass Pro | |
| on: | |
| push: | |
| branches: [ main, master, develop ] | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| - '.gitignore' | |
| pull_request: | |
| branches: [ main, master ] | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| name: 🖥️ Build on ${{ matrix.os }} (Python ${{ matrix.python-version }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| python-version: ['3.10', '3.11'] | |
| include: | |
| - os: ubuntu-latest | |
| artifact_name: SecurePassPro-Linux | |
| executable_ext: '' | |
| - os: windows-latest | |
| artifact_name: SecurePassPro-Windows.exe | |
| executable_ext: '.exe' | |
| - os: macos-latest | |
| artifact_name: SecurePassPro-macOS | |
| executable_ext: '' | |
| steps: | |
| - name: 📥 Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: 🐍 Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| - name: 📦 Cache pip packages | |
| uses: actions/cache@v4 | |
| 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 pyinstaller | |
| if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | |
| pip install pillow customtkinter cryptography argon2-cffi qrcode[pil] requests psutil | |
| shell: bash | |
| - name: 🔍 Lint with flake8 (Linux only) | |
| if: runner.os == 'Linux' | |
| run: | | |
| pip install flake8 | |
| flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
| flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
| - name: 🔒 Run security checks (bandit) | |
| if: runner.os == 'Linux' | |
| run: | | |
| pip install bandit | |
| bandit -r . -f json -o bandit_report.json --skip=B101,B311 || true | |
| - name: ✅ Run tests (if tests exist) | |
| run: | | |
| python -m pytest tests/ -v --tb=short --ignore=tests/test_gui.py || echo "⚠️ No tests found, continuing build" | |
| continue-on-error: true | |
| - name: 🏗️ Build with PyInstaller (Windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| python build.py | |
| shell: pwsh | |
| - name: 🏗️ Build with PyInstaller (Linux) | |
| if: runner.os == 'Linux' | |
| run: | | |
| chmod +x build.py | |
| python build.py | |
| - name: 🏗️ Build with PyInstaller (macOS) | |
| if: runner.os == 'macOS' | |
| run: | | |
| python build.py | |
| - name: 📦 Upload artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact_name }}-py${{ matrix.python-version }} | |
| path: dist/ | |
| retention-days: 30 | |
| - name: 📊 Upload security report | |
| if: always() && runner.os == 'Linux' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: bandit-report | |
| path: bandit_report.json | |
| retention-days: 30 |