LorenzoBioinfo
Update ci
0362599
name: CI - Tests & Lint
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Necessario per permettere il push completo
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install flake8 pytest black
- name: Set HuggingFace token
run: echo "${{ secrets.HFREPO }}" > ~/.hf_token
- name: Cache Hugging Face and datasets
uses: actions/cache@v4
with:
path: |
~/.cache/huggingface
~/.cache/datasets
key: ${{ runner.os }}-hf-${{ hashFiles('requirements.txt') }}
- name: Prepare processed data
run: |
mkdir -p data/processed
python src/data_preparation.py tweet_eval
python src/data_preparation.py youtube
env:
HF_TOKEN: ${{ secrets.HFREPO }}
- name: Format code with Black
run: |
black --line-length 100 src tests
- name: Lint with flake8
run: |
flake8 src tests --max-line-length=100 --exclude=__init__.py
continue-on-error: true
- name: Run tests
run: |
export PYTHONPATH=$PYTHONPATH:$(pwd)
pytest --maxfail=1 --disable-warnings -q
env:
HF_TOKEN: ${{ secrets.HFREPO }}
- name: Configure Git identity for CI
run: |
git config --global user.email "ci-bot@users.noreply.github.com"
git config --global user.name "GitHub Actions"
- name: Push app update to Hugging Face Space
run: |
echo "Checking for changes before pushing..."
if [ -n "$(git status --porcelain)" ]; then
echo "Changes detected — committing and pushing to Hugging Face "
git add .
git commit -m "Auto-deploy new version [skip ci]" || echo "No commit needed"
git pull https://user:${HF_TOKEN}@huggingface.co/spaces/Lordemarco/sentiment-fastapi main --rebase || true
git push https://user:${HF_TOKEN}@huggingface.co/spaces/Lordemarco/sentiment-fastapi main --force
else
echo "No changes to push "
fi
env:
HF_TOKEN: ${{ secrets.HFREPO }}