22 ms·
> use a Makefile instead I was making a general comment that your build should be a single 'command'. Personally, I don't care what the command is, only that
by DrBazza 1y ago
> use a Makefile instead
I was making a general comment that your build should be a single 'command'. Personally, I don't care what the command is, only that it should be a) one command, and b) 100% runnable on a dev box or a server. If you use make, you'll soon end up writing... shell scripts, so just use a shell script.
In an ideal world your topmost command would be a build tool:
./gradlew build
bazel build //...
make debug
cmake --workflow --preset
Unfortunately, the second you do that ^^^, someone edits your CI/CD to add a step before the build starts. It's what people do :(
All the cruft that ends up *in CI config*, should be under version control, and inside your single command, so you can debug locally.
- chubot 1y agoThat's exactly why the "main" should be shell, not make (see my sibling reply). So when someone needs to add that step, it becomes: #!/bin/sh step-I-added-to-shell-rather-than-CI-yaml make debug # or cmake, bazel This is better so you can run the whole thing locally, and on different CI providers In general, a CI is not a DAG, and not completely parallel -- but it often contains DAGs