GitHub Actions
🚀 Auto-deploy from GitHub Actions
53aa80c
name: Deploiement vers Hugging Face Spaces
on:
push:
branches:
- main
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
env:
PROJET05_DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/projet05
PROJET05_TEST_DATABASE_URL: postgresql+psycopg://postgres:postgres@localhost:5432/projet05_test
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install -e .
- name: Install PostgreSQL client
run: |
sudo apt-get update
sudo apt-get install -y postgresql-client
- name: Prepare databases
env:
PGPASSWORD: postgres
run: |
psql -h localhost -U postgres -c "DROP DATABASE IF EXISTS projet05;"
psql -h localhost -U postgres -c "DROP DATABASE IF EXISTS projet05_test;"
psql -h localhost -U postgres -c "CREATE DATABASE projet05;"
psql -h localhost -U postgres -c "CREATE DATABASE projet05_test;"
- name: Run tests
run: pytest
- name: Préparer les données et le modèle
run: python main.py
- name: Deploy to Hugging Face Space
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/projet_05 hf_space
rsync -av --exclude '.git' --exclude 'docs' ./ 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/projet_05 main