Urgent.News

What's breaking now, across thousands of outlets.

Tech

Building FoxyInvoice — Chapter 7: CI/CD — push to main and it's live

This series is written in the open, from a real production system. This chapter is the deploy pipeline end to end, plus three real incidents where it quietly lied to us. [All chapters and diagrams live in the public repo.] There is no staging environment in this system. There is main , and main is production. That sounds reckless until you see the gates — and the alternative for a solo operator…

Deploying FoxyInvoice: CI/CD Pipeline and Real-Life Incidents

This chapter covers the end-to-end deploy pipeline for FoxyInvoice, including three incidents where the pipeline failed. The system has no staging environment; instead, main is production, and the gates ensure safe push-to-deploy.

The deploy pipeline runs gates first, in parallel. Unit tests, integration tests with Testcontainers, and conformance checks run simultaneously. A concurrency group serializes deploys, ensuring pushes minutes apart never interfere. SSH deploys the code, git reset --hard on the host, and BuildKit secrets are mounted during the build.

Health gates, SPA rebuild, and smoke tests follow. Each API container must report healthy before proceeding, or the pipeline fails loudly. Database migrations apply automatically on container startup. The SPA rebuilds on the host, and both health endpoints must return 200. Finally, IndexNow is pinged.

Three incidents highlight the pipeline's flaws:

1. A build failure caused unexpected success for eight hours.

2. A cancelled deploy run locked out the concurrency group, causing queueing issues.

3. A YAML label mismatch created jobs that queued indefinitely.

The pipeline's lessons include aborting failed builds, recognizing distinct failure modes, and the importance of precise label specifications. The doctrine of "forward-fix" prevents rollbacks, as migrations are irreversible. Push-to-deploy has psychological benefits for solo developers, encouraging frequent shipping and immediate feedback.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Also reported by 1 other outlet

Read the original at dev.to →

More in Tech

My fact-checker said CONFIRMED about a group that doesn't exist

I built a tool that fact-checks crypto claims. You paste a sentence like "Whales are holding $XYZ" and it plans the on-chain calls that claim needs, runs them against Nansen 's API, and answers…

  • Tool confidently confirmed non-existent wallets
  • Response declared claim as true despite non-existence
  • Highlights fundamental flaw in tool's design

When agents sped up, two teams hit the same wall: validation couldn't keep up

Agents made it faster to write code. Two engineering teams published what happened on the validation side when they did, and the two write-ups land on the same structural claim from opposite ends.

  • Two engineering teams faced validation bottlenecks when speeding up AI-generated code.
  • Linear optimized validation by using faster third-party runners and AST-based linting.
  • Salesforce rebuilt review system to reconstruct intent and progressively disclose risk.

Handling Warped Phone Photos in Python Coordinate-Based OMR Grading

Handling Warped Phone Photos in Python Coordinate-Based OMR Grading Introduction Optical Mark Recognition (OMR) sheet grading systems are widely used in various educational and professional settings…

  • Coordinate-based OMR systems struggle with warped phone photos due to geometric distortions.
  • Implement OpenCV pipeline to detect corners and apply Perspective Transform for image correction.
  • Utilize Object Detection techniques like YOLO or SSD for improved answer bubble detection.

More from Wednesday 23 September →