Spaces:
Sleeping
Sleeping
| name: ci-cd | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| jobs: | |
| test-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Run tests | |
| run: pytest --cov=app --cov=monitoring --cov-report=term-missing -q | |
| - name: Build Docker image | |
| run: docker build -t ocr-projet06:ci . | |
| - name: Deploy to Hugging Face Space | |
| if: github.ref == 'refs/heads/main' | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| git config --global user.email "actions@github.com" | |
| git config --global user.name "GitHub Actions" | |
| git clone https://huggingface.co/spaces/stephmnt/credit-scoring-mlops hf_space | |
| rsync -av \ | |
| --exclude '.git' \ | |
| --exclude '.venv' \ | |
| --exclude '.pytest_cache' \ | |
| --exclude '__pycache__' \ | |
| --exclude 'mlruns' \ | |
| --exclude '*.ipynb' \ | |
| --exclude 'logs' \ | |
| --exclude 'reports' \ | |
| --exclude 'screen-mlflow.png' \ | |
| --exclude 'artifacts/preprocessor.joblib' \ | |
| --exclude 'data/*.csv' \ | |
| --exclude 'data/*.parquet' \ | |
| --exclude 'notebooks/mlflow.db' \ | |
| ./ hf_space/ | |
| cd hf_space | |
| git add . | |
| git commit -m "Auto-deploy from GitHub Actions" || echo "No changes to commit" | |
| git push https://stephmnt:${HF_TOKEN}@huggingface.co/spaces/stephmnt/credit-scoring-mlops main | |