[pull] master from botpress:master #54
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Check Chat Integration Docker | |
| on: | |
| pull_request: | |
| branches: | |
| - master | |
| paths: | |
| - 'integrations/chat/**' | |
| - 'packages/sdk/**' | |
| permissions: | |
| id-token: write | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }} | |
| cancel-in-progress: false | |
| jobs: | |
| build-and-test: | |
| runs-on: depot-ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Depot CLI | |
| uses: depot/setup-action@v1 | |
| - name: Build Docker image | |
| uses: depot/build-push-action@v1 | |
| with: | |
| project: ${{ secrets.DEPOT_PROJECT_ID }} | |
| build-args: | | |
| MINIFY=true | |
| file: ./integrations/chat/Dockerfile | |
| context: . | |
| push: false | |
| load: true | |
| tags: chat-integration:test | |
| - name: Start Docker container | |
| run: | | |
| docker run -d \ | |
| --name chat-test \ | |
| -p 8081:8081 \ | |
| -e SECRET_SIGNAL_URL=https://chat.botpress.dev \ | |
| chat-integration:test | |
| - name: Wait for container to be ready | |
| run: | | |
| echo "Waiting for container to start..." | |
| for i in {1..30}; do | |
| if docker ps --filter "name=chat-test" --filter "status=running" | grep -q chat-test; then | |
| echo "Container is running" | |
| sleep 5 | |
| exit 0 | |
| fi | |
| if docker ps -a --filter "name=chat-test" --filter "status=exited" | grep -q chat-test; then | |
| echo "Container exited prematurely!" | |
| docker logs chat-test | |
| exit 1 | |
| fi | |
| echo "Waiting for container... ($i/30)" | |
| sleep 2 | |
| done | |
| echo "Container did not start within expected time" | |
| docker ps -a | |
| exit 1 | |
| - name: Check health endpoint | |
| run: | | |
| echo "Checking /health endpoint..." | |
| for i in {1..15}; do | |
| if curl -f http://localhost:8081/health; then | |
| echo "Health check passed!" | |
| exit 0 | |
| fi | |
| echo "Attempt $i/15 failed, retrying..." | |
| sleep 2 | |
| done | |
| echo "Health check failed after 15 attempts" | |
| exit 1 | |
| - name: Show container logs on failure | |
| if: failure() | |
| run: docker logs chat-test | |
| - name: Cleanup container | |
| if: always() | |
| run: docker rm -f chat-test || true |