Spaces:
Sleeping
Sleeping
CD: Push to Docker Hub & Hugging Face
Browse files- .github/workflows/ci_papeline.yaml +19 -0
- 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
|
| 29 |
-
EXPOSE
|
| 30 |
|
| 31 |
-
#
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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"]
|