name: Build & Deploy on: push: branches: [main] jobs: deploy: runs-on: self-hosted steps: - name: Checkout run: | git config --global --add safe.directory "$GITHUB_WORKSPACE" if [ -d "$GITHUB_WORKSPACE/.git" ]; then git -C "$GITHUB_WORKSPACE" fetch --all git -C "$GITHUB_WORKSPACE" reset --hard "$GITHUB_SHA" else git clone "http://192.168.5.171:3000/$GITHUB_REPOSITORY.git" "$GITHUB_WORKSPACE" git -C "$GITHUB_WORKSPACE" checkout "$GITHUB_SHA" fi - name: Build image run: docker build -t 3d-pricing:latest "$GITHUB_WORKSPACE" - name: Redeploy run: | docker rm -f 3d-pricing 2>/dev/null || true docker run -d \ --name 3d-pricing \ --restart unless-stopped \ -p 5010:5000 \ -v /opt/3d-pricing-data:/data \ -e DATABASE_PATH=/data/pricing.db \ 3d-pricing:latest - name: Healthcheck run: | sleep 5 curl -f http://localhost:5010/ || (echo "App not responding!" && exit 1)