Spaces:
Runtime error
Runtime error
| name: Docker Compose CI/CD | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| env: | |
| DOCKER_IMAGE: ghcr.io/jtsb2b/homeshopping | |
| DOCKER_TAG: latest | |
| CONTAINER_NAME: "homeshopping" | |
| jobs: | |
| build-push: | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| actions: | |
| write | |
| packages: | |
| write | |
| repository-projects: | |
| read | |
| contents: | |
| read | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build and Push Docker Image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: Dockerfile | |
| push: true | |
| tags: ${{ env.DOCKER_IMAGE }}:${{ env.DOCKER_TAG }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| deploy: | |
| needs: build-push | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 60 | |
| steps: | |
| - name: Deploy via SSH | |
| uses: appleboy/ssh-action@v1 | |
| with: | |
| host: ${{ secrets.SSH_HOST }} | |
| username: ${{ secrets.SSH_USERNAME }} | |
| key: ${{ secrets.SSH_PRIVATE_KEY }} | |
| script: | | |
| echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin | |
| docker pull ${{ env.DOCKER_IMAGE }}:${{ env.DOCKER_TAG }} | |
| docker stop ${{ env.CONTAINER_NAME }} || true | |
| docker rm -f ${{ env.CONTAINER_NAME }} 2> /dev/null || true | |
| docker run -d --name ${{ env.CONTAINER_NAME }} -p 8016:7860 \ | |
| -e CALL_ADMIN_URL="${{ secrets.CALL_ADMIN_URL }}" \ | |
| -e GCP_SERVICE_ACCOUNT_JSON='${{ secrets.GCP_SERVICE_ACCOUNT_JSON }}' \ | |
| -e GEMINI_API_KEY="${{ secrets.GEMINI_API_KEY }}" \ | |
| -e GEMMA_API_KEY="${{ secrets.GEMMA_API_KEY }}" \ | |
| -e GEMMA_BASE_URL="${{ secrets.GEMMA_BASE_URL }}" \ | |
| -e CHAT_BASE_URL="${{ secrets.CHAT_BASE_URL }}" \ | |
| -e HF_TOKEN="${{ secrets.HF_TOKEN }}" \ | |
| -e JAI_API_KEY="${{ secrets.JAI_API_KEY }}" \ | |
| -e JAI_BASE_URL="${{ secrets.JAI_BASE_URL }}" \ | |
| -e JTS_API_KEY="${{ secrets.JTS_API_KEY }}" \ | |
| -e JTS_BASE_URL="${{ secrets.JTS_BASE_URL }}" \ | |
| -e LANGFUSE_HOST="${{ secrets.LANGFUSE_HOST }}" \ | |
| -e LANGFUSE_PUBLIC_KEY="${{ secrets.LANGFUSE_PUBLIC_KEY }}" \ | |
| -e LANGFUSE_SECRET_KEY="${{ secrets.LANGFUSE_SECRET_KEY }}" \ | |
| -e MONGO_ROOT_PASSWORD="${{ secrets.MONGO_ROOT_PASSWORD }}" \ | |
| -e MONGO_ROOT_USERNAME="${{ secrets.MONGO_ROOT_USERNAME }}" \ | |
| -e MONGO_URL="${{ secrets.MONGO_URL }}" \ | |
| -e OPENAI_API_KEY="${{ secrets.OPENAI_API_KEY }}" \ | |
| -e PURCHASE_URL="${{ secrets.PURCHASE_URL }}" \ | |
| -e TYPHOON_API_KEY="${{ secrets.TYPHOON_API_KEY }}" \ | |
| -e TYPHOON_BASE_URL="${{ secrets.TYPHOON_BASE_URL }}" \ | |
| ${{ env.DOCKER_IMAGE }}:${{ env.DOCKER_TAG }} | |
| docker image prune -af | |
| docker ps -a | |
| docker logs ${{ env.CONTAINER_NAME }} | |