name: Docker Server Test on: push: branches: - main - dev pull_request: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/dev' }} jobs: docker: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup postgres run: | docker run -d --name db -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password -e POSTGRES_DB=stackframe -p 5432:5432 postgres:latest sleep 5 docker logs db - name: Build Docker image run: docker build -f docker/server/Dockerfile -t server . - name: Run Docker container and check logs run: | docker run --add-host=host.docker.internal:host-gateway --env-file docker/server/.env.example -p 8101:8101 -p 8102:8102 -d --name stackframe-server server sleep 30 docker logs stackframe-server - name: Check server health run: | echo "Attempting to connect to server..." curl -v http://localhost:8101 response_code=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8101) echo "Response code: $response_code" if [ $response_code -ne 200 ]; then echo "Server health check failed with status code: $response_code" exit 1 fi