diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index adb3ad7..ed66f26 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -2,61 +2,77 @@ name: CI on: push: - branches: [ main, master ] + branches: [main, master] pull_request: - branches: [ main, master ] + branches: [main, master] jobs: - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.11' - cache: 'pip' - - name: Install flake8 - run: pip install flake8 - - name: Run flake8 - run: flake8 src/ tests/ --max-line-length=100 --ignore=E501,W503 - test: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.9', '3.10', '3.11'] + python-version: ["3.10", "3.11", "3.12"] + steps: - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' + - name: Install dependencies run: | python -m pip install --upgrade pip - pip install pytest click requests ghapi rich pyyaml diskcache + pip install pytest pytest-cov flake8 + pip install -e . + - name: Run tests run: pytest tests/ -v --tb=short - build: + lint: runs-on: ubuntu-latest - needs: test + steps: - uses: actions/checkout@v4 + - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: "3.12" cache: 'pip' + + - name: Install linter + run: | + python -m pip install --upgrade pip + pip install flake8 + pip install -e . + + - name: Run linter + run: flake8 src/ tests/ --max-line-length=100 + + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + cache: 'pip' + - name: Install build dependencies run: | python -m pip install --upgrade pip pip install build + - name: Build package run: python -m build - - name: Verify build + + - name: Verify installation run: | pip install dist/*.whl - python -c "import code_pattern_search_cli; print('Build successful')" + python -c "from src.cli import main; print('Package imported successfully')"