

What I usually push for is that every CI task either sets up the environment or executes that one command™ for that task. For example, that command can be uv run ruff check or cargo fmt --all -- --check or whatever.
Where the CI-runs-one-script-only (or no-CI) approach falls apart for me is when you want to have a deployment pipeline. It’s usually best not to have deployment secrets stored in any dev machine, so a good place to keep them is in your CI configs (and all major platforms support secrets stored with an environment, variable groups, etc). Of course, I’m referring here to work on a larger team, where permission to deploy needs to be transferrable, but you don’t really want to be rotating deployment secrets all the time either. This means you’re running code in the pipeline that you can’t run locally in order to deploy it.
It also doesn’t work well when you build for multiple platforms. For example, I have Rust projects that build and test on Windows, MacOS, and Linux which is only possible by running those on multiple runners (each on a different OS and, in MacOS’s case, CPU architecture).
The compromise of one-script-per-task can usually work even in these situations, from my experience. You still get to use things like GitHub’s matrix, for example, to run multiple runners in parallel. It just means you have different commands for different things now.






So uh let’s look past the constitutionality of Trump funding the TSA through an executive order because anyone challenging it would be committing political suicide.
How, exactly, does that help the GOP? If the TSA is being funded anyway, doesn’t it benefit Senate Dems to just not accept any bill that they don’t like? GOP is basically throwing away one of their biggest levers to try to force Dems to compromise.
And look, I’m all for that. Dems should just reject bills they don’t like if there’s nothing for them in the bills. Fuck funding DHS/ICE. Fuck the Voter ID stuff. Just keep saying “no” until you get some wins because Trump seems to want to just hand you them on a silver platter anyway.