Spaces:
Running
Running
| name: Build and Deploy Code | |
| on: [push, pull_request] | |
| jobs: | |
| job1: | |
| environment: | |
| name: testing | |
| env: | |
| DATABASE_HOSTNAME: localhost | |
| DATABASE_PORT: 5432 | |
| DATABASE_NAME: ${{ secrets.DATABASE_NAME }} | |
| DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }} | |
| DATABASE_USERNAME: ${{ secrets.DATABASE_USERNAME }} | |
| SECRET_KEY: ${{ secrets.SECRET_KEY }} | |
| ALGORITHM: ${{ secrets.ALGORITHM }} | |
| ACCESS_TOKEN_EXPIRE_MINUTES: ${{ secrets.ACCESS_TOKEN_EXPIRE_MINUTES }} | |
| services: | |
| postgres: | |
| image: postgres | |
| env: | |
| POSTGRES_PASSWORD: ${{ secrets.DATABASE_PASSWORD }} | |
| POSTGRES_DB: ${{ secrets.DATABASE_NAME }}_test | |
| POSTGRES_USER: ${{ secrets.DATABASE_USERNAME }} | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Pulling Code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Update pip | |
| run: python -m pip install --upgrade pip | |
| - name: Install dependencies | |
| run: pip install -r requirements.txt | |
| - name: Run tests | |
| run: pytest | |
| deploy: | |
| runs-on: ubuntu-latest | |
| needs: [job1] | |
| environment: | |
| name: deploy | |
| steps: | |
| - name: Pulling code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Push to Hugging Face | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| run: | | |
| git config --global user.email "ci@github.com" | |
| git config --global user.name "GitHub Actions" | |
| git remote add hf https://abdullah090809:$HF_TOKEN@huggingface.co/spaces/abdullah090809/fastapi-project | |
| git push hf main --force | |