If make fails in a multi-process invocation, the log is pretty much
unreadable. To make it readable, build as much as can be built without
failing. Then run a single-process make again. If we succeeded
previously, this should be a no-op. If not, this run will stop at the
first error, which should be more readable, and will only print the few
lines we're interested in.
This has some side effects: Now we build as much as we can, instead of
failing as early as possible; this may make CI a bit slower. However,
it also has the benefit that you see _all_ the error messages that could
be given, instead of needing to fix the first error to see the next and
so on.
Cc: Iker Pedrosa <ipedrosa@redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
- name: Build shadow-utils
run: |
PROCESSORS=$(/usr/bin/getconf _NPROCESSORS_ONLN)
- make -j$PROCESSORS
+ make -kj$PROCESSORS || true
+
+ - name: Check build errors
+ run: make
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
notification_email: christian.brauner@ubuntu.com,serge@hallyn.com
build_command_prepend: "./autogen.sh --without-selinux --disable-man"
- build_command: "make -j4"
+ build_command: "make -kj4 || make"
branch_pattern: master
script:
WORKDIR /usr/local/src/shadow/
RUN ./autogen.sh --without-selinux --disable-man --disable-nls --with-yescrypt
-RUN make -j4
+RUN make -kj4 || true
+RUN make
RUN make install
FROM scratch AS export
WORKDIR /usr/local/src/shadow/
RUN ./autogen.sh --without-selinux --enable-man --with-yescrypt
-RUN make -j4
+RUN make -kj4 || true
+RUN make
RUN make install
FROM scratch AS export
--with-sha-crypt --with-bcrypt --with-yescrypt --with-selinux \
--without-libcrack --without-libpam --enable-shared \
--with-group-name-max-length=32
-RUN make -j4
+RUN make -kj4 || true
+RUN make
RUN make install
FROM scratch AS export