Faffio commited on
Commit
3ecf7d4
·
1 Parent(s): 010ce41

CD: Push to Docker Hub & Hugging Face

Browse files
Files changed (2) hide show
  1. .github/workflows/ci_papeline.yaml +19 -0
  2. Dockerfile +14 -4
.github/workflows/ci_papeline.yaml CHANGED
@@ -69,6 +69,25 @@ jobs:
69
 
70
  echo "Pushing image to Docker Hub..."
71
  docker push $IMAGE_TAG
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  # I file vengono salvati nella repository PRIMA che il test parta. È il fatto che tu abbia "pushato" i file che sveglia il robot e gli fa iniziare il lavoro.
73
 
74
  # Ecco la sequenza temporale esatta:
 
69
 
70
  echo "Pushing image to Docker Hub..."
71
  docker push $IMAGE_TAG
72
+ deploy_to_huggingface:
73
+ needs: run_tests # Parte solo se i test passano
74
+ runs-on: ubuntu-latest
75
+ if: github.ref == 'refs/heads/main'
76
+
77
+ steps:
78
+ - uses: actions/checkout@v3
79
+ with:
80
+ fetch-depth: 0
81
+ lfs: true
82
+
83
+ - name: Push to Hub
84
+ env:
85
+ HF_TOKEN: ${{ secrets.HF_TOKEN }} # Ho creato un token write su HuggingFace che viene utilizzato qui per pushare
86
+ # Sostituisci col nome del tuo utente HF e del tuo space
87
+ HF_USERNAME: Faffio # Nome utente
88
+ SPACE_NAME: Sentiment-Analysis # Nome dello space che ho creato nel mio account
89
+ run: |
90
+ git push https://$HF_USERNAME:[email protected]/spaces/$HF_USERNAME/$SPACE_NAME main
91
  # I file vengono salvati nella repository PRIMA che il test parta. È il fatto che tu abbia "pushato" i file che sveglia il robot e gli fa iniziare il lavoro.
92
 
93
  # Ecco la sequenza temporale esatta:
Dockerfile CHANGED
@@ -25,8 +25,18 @@ RUN python -c "from transformers import AutoTokenizer, AutoModelForSequenceClass
25
  AutoTokenizer.from_pretrained(name); \
26
  AutoModelForSequenceClassification.from_pretrained(name)"
27
 
28
- # 7. Esponiamo la porta 8000
29
- EXPOSE 8000
30
 
31
- # 8. Il comando che parte quando avvii il container
32
- CMD ["uvicorn", "app.api.main:app", "--host", "0.0.0.0", "--port", "8000"]
 
 
 
 
 
 
 
 
 
 
 
25
  AutoTokenizer.from_pretrained(name); \
26
  AutoModelForSequenceClassification.from_pretrained(name)"
27
 
28
+ # 7) Hugging Face richiede la porta 7860
29
+ EXPOSE 7860
30
 
31
+ # Dobbiamo creare un utente non-root per sicurezza (Hugging Face lo gradisce molto)
32
+ RUN useradd -m -u 1000 user
33
+ USER user
34
+ ENV HOME=/home/user \
35
+ PATH=/home/user/.local/bin:$PATH
36
+
37
+ WORKDIR $HOME/app
38
+
39
+ COPY --chown=user . $HOME/app
40
+
41
+ # Cambiamo il comando di avvio
42
+ CMD ["uvicorn", "app.api.main:app", "--host", "0.0.0.0", "--port", "7860"]