Skip to content

Make the project complete. #12

Make the project complete.

Make the project complete. #12

Workflow file for this run

name: Continuous Integration
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
env:
PYTHON_VERSION: '3.9'
CUDA_VERSION: '11.8'
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-
${{ runner.os }}-pip-
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
pip install -r requirements.txt
pip install pytest pytest-cov pytest-xdist
- name: Run unit tests
run: |
pytest test/ -v --cov=quantllm --cov-report=xml --cov-report=term-missing -n auto
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install linting tools
run: |
python -m pip install --upgrade pip
pip install flake8 black isort mypy
- name: Run black
run: black --check --diff quantllm/
- name: Run isort
run: isort --check-only --diff quantllm/
- name: Run flake8
run: flake8 quantllm/
- name: Run mypy
run: mypy quantllm/ --ignore-missing-imports
i

Check failure on line 86 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

You have an error in your yaml syntax on line 86
ntegration-test:
runs-on: ubuntu-latest
needs: [test, lint]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
pip install -r requirements.txt
- name: Test CLI installation
run: |
quantllm --help
quantllm --version
- name: Test basic quantization workflow
run: |
# Test with a small model
quantllm quantize \
--model "gpt2" \
--method "gguf" \
--bits 4 \
--output-dir "./test_output" \
--dry-run \
--verbose
- name: Test configuration file support
run: |
# Create test config
cat > test_config.yaml << EOF
model: "gpt2"
method: "gguf"
bits: 4
output_dir: "./test_output"
dry_run: true
EOF
# Test config file loading
quantllm quantize --config test_config.yaml --verbose
docker-build:
runs-on: ubuntu-latest
needs: [test, lint]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build CLI Docker image
run: |
docker build -f docker/Dockerfile.cli -t quantllm:cli-test .
- name: Test CLI Docker image
run: |
docker run --rm quantllm:cli-test --help
docker run --rm quantllm:cli-test --version
- name: Build GPU Docker image
run: |
docker build -f docker/Dockerfile.gpu -t quantllm:gpu-test .
security-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
scan-ref: '.'
format: 'sarif'
output: 'trivy-results.sarif'
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v2
if: always()
with:
sarif_file: 'trivy-results.sarif'
performance-test:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .
pip install -r requirements.txt
pip install pytest-benchmark
- name: Run performance benchmarks
run: |
pytest test/ -k "benchmark" --benchmark-only --benchmark-json=benchmark.json
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
tool: 'pytest'
output-file-path: benchmark.json
github-token: ${{ secrets.GITHUB_TOKEN }}
auto-push: false
comment-on-alert: true
alert-threshold: '200%'
fail-on-alert: true