name: Docker Integration on: push: branches: [main] pull_request: branches: [main] jobs: docker-build: name: Docker Compose Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build all services run: docker compose -f devops/docker-compose.yml build - name: Start services run: | docker compose -f devops/docker-compose.yml up -d db backend sleep 15 - name: Verify backend health run: | docker compose -f devops/docker-compose.yml exec -T backend node -e "const h=require('http');h.get('http://localhost:5000/health',(r)=>{let d='';r.on('data',c=>d+=c);r.on('end',()=>{console.log(d);process.exit(r.statusCode===200?0:1)})}).on('error',e=>{console.error(e);process.exit(1)})" - name: Cleanup if: always() run: docker compose -f devops/docker-compose.yml down -v