Urgent.News

What's breaking now, across thousands of outlets.

Tech

Three holes in a green CI, and a lock for the free plan

What this is about. On a site we worked on recently, the test pipeline went green across the board, and we looked into what green actually covered. Three things turned out not to be covered at all. This is how we found and closed each one, on a free GitHub plan. Why. A green CI tells you that the tests it ran passed. It doesn't tell you which tests it didn't run, or whether anything waits for it…

The test pipeline of a project the reporter worked on was green, indicating all tests passed. However, the reporter discovered three issues that were not covered by the green CI status, all of which were on a free GitHub plan.

Hole 1: Tests not run by CI. The backend consisted of several small services, each with its own job in CI. The reporter found that some services lacked tests and jobs altogether. These were added to the workflow file, revealing that tests were failing or crashing due to missing dependencies or unreachable URLs. To fix these issues, the reporter created a conftest.py file with a rule to skip tests that require a database when it is not set up.

Moreover, the reporter ensured that tests would display an error instead of silently skipping when a database was unavailable in CI.

Hole 2: Tests building different schemas than production. The service created its tables by running migrations when the container started. However, the tests built the tables directly from the models using create_all(), leading to mismatches between the test database and production. To address this, the reporter added a test that ran the real migrations on an empty database and compared the result with the models using Alembic.

This test found schema drift on the first run and ensured the database remained unchanged, even though the tests had passed.

Hole 3: The system lacked a wait mechanism for green CI status. The repository was private and on a free plan, making GitHub branch protection unavailable. Although a commit could go red in CI, it could still be deployed shortly after. To prevent this, the reporter implemented a small script that checked if the commit being deployed matched the one on the main branch, found the CI run for that commit, and waited for it to complete successfully.

This check also handled special cases such as docs-only commits and overrides for when CI was slow. The script was tested against a fake GitHub CLI in a throwaway repository using various scenarios, including green, red, cancelled, and untested code.

Overall, the reporter's findings and fixes resulted in a more reliable CI system that covered all aspects of the project. By adding tests to CI, addressing schema mismatches, and implementing a wait mechanism for green CI status, the reporter ensured that the pipeline would effectively inform developers of potential issues before deployment.

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

Read the original at dev.to →

More in Tech

What are you doing this weekend?

Feel free to tell what you plan on doing this weekend and even ask for help or feedback. Please keep in mind it’s more than OK to do nothing at all too!

WEEK 4, GHOST PROOF

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine What I Built GhostProof — an AI-powered fact checker and code reviewer.

  • GhostProof combines fact-checking and code review in one tool.
  • Uses React, TypeScript, and Vercel serverless APIs.
  • Emphasizes open innovation with open-weight models.

How to Split Large STL & 3MF Files for Small Print Beds Without Slicing Errors

Every desktop 3D printer eventually hits a physical ceiling: build volume. An Ender 3 caps out around 220 × 220 × 250 mm; a Prusa MINI or Bambu Lab A1 mini restricts you to an 180 mm cube.

  • Check usable build volume, subtract 8-10 mm from each axis
  • Use STL Splitter tool to preserve mesh topology without re-meshing
  • Align cut planes along natural body lines, avoid thin walls

One week after PHP2Shell: attacked in the wild, and now a Linux kernel flaw on top

On 21 October the PHP team released emergency updates for two critical flaws, CVE-2026-109618 and CVE-2026-109619 (“PHP2Shell”). Back then the question was how fast you could patch.

  • PHP released emergency updates for PHP2Shell flaws on 21 October
  • Linux kernel flaw CVE-2026-46300 allows root access exploitation
  • Combined threat can compromise servers and all associated sites and secrets

How CSS Controls the Layout of a Webpage: A Beginner-Friendly Guide

Have you ever looked at a webpage and wondered: “How did they get everything to sit exactly there?” The heading is at the top. The navigation links are arranged neatly.

  • CSS controls webpage layout beyond colors and fonts
  • Display property determines element's contribution to layout
  • Flexbox and Grid are key layout systems for rows/columns

More from Friday 30 October →