mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-05 09:33:25 -08:00
[CI] Split the sanitizer leg from the Ubuntu packaging leg (#7666)
The sanitize leg re-ran the Release packaging build after the instrumented one, so 18 minutes of Release compile queued behind the sanitizer run in a single job. Give sanitize its own leg with its own image and ccache, and keep the plain Ubuntu leg publishing the DEB. - The coverage leg's packaging comment now points at the leg that actually publishes the DEB. - The -DENABLE_SANITIZERS=OFF comment no longer describes a debug-sanitize then release-package sequence that no job runs. Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
75beb7f302
commit
3f7aa4ca82
2 changed files with 18 additions and 7 deletions
|
|
@ -175,9 +175,9 @@ fi
|
||||||
if [[ $MAKE_SANITIZE ]]; then
|
if [[ $MAKE_SANITIZE ]]; then
|
||||||
flags+=("-DENABLE_SANITIZERS=ON")
|
flags+=("-DENABLE_SANITIZERS=ON")
|
||||||
else
|
else
|
||||||
# The release-package step re-runs cmake in the same build dir, so an
|
# Every leg states the flag explicitly rather than relying on the CMake
|
||||||
# ENABLE_SANITIZERS=ON left over from the debug step would otherwise leak
|
# default, so a build directory reused from a sanitized configuration can
|
||||||
# into the shipped binaries (libasan/libubsan Depends in the DEB).
|
# never leak libasan/libubsan into a shipped binary.
|
||||||
flags+=("-DENABLE_SANITIZERS=OFF")
|
flags+=("-DENABLE_SANITIZERS=OFF")
|
||||||
fi
|
fi
|
||||||
if [[ $MAKE_COVERAGE ]]; then
|
if [[ $MAKE_COVERAGE ]]; then
|
||||||
|
|
|
||||||
19
.github/workflows/desktop-build.yml
vendored
19
.github/workflows/desktop-build.yml
vendored
|
|
@ -187,10 +187,21 @@ jobs:
|
||||||
version: 26.04
|
version: 26.04
|
||||||
|
|
||||||
package: DEB
|
package: DEB
|
||||||
|
test: skip # The sanitizer leg below runs this distro's suite
|
||||||
|
|
||||||
# The one leg that runs the suite under AddressSanitizer and
|
# The one leg that runs the suite under AddressSanitizer and
|
||||||
# UndefinedBehaviorSanitizer. Debian 13 and Fedora 44 keep covering the
|
# UndefinedBehaviorSanitizer. Debian 13 and Fedora 44 keep covering the
|
||||||
# uninstrumented suite, so nothing is lost by instrumenting this one.
|
# uninstrumented suite, so nothing is lost by instrumenting this one.
|
||||||
|
#
|
||||||
|
# It packages nothing. A sanitized Debug build is not something to ship, and
|
||||||
|
# carrying the package build here meant 18 minutes of Release compile queued
|
||||||
|
# behind the instrumented one in a single job. The leg above publishes this
|
||||||
|
# distro's DEB.
|
||||||
|
- distro: Ubuntu
|
||||||
|
version: 26.04
|
||||||
|
variant: sanitize # separate image and ccache, same distro
|
||||||
|
|
||||||
|
package: skip
|
||||||
sanitize: yes
|
sanitize: yes
|
||||||
|
|
||||||
- distro: Ubuntu
|
- distro: Ubuntu
|
||||||
|
|
@ -202,7 +213,7 @@ jobs:
|
||||||
# sanitizer leg because the two instruments answer different questions: the
|
# sanitizer leg because the two instruments answer different questions: the
|
||||||
# sanitizer leg reports what the run did wrong, the coverage leg reports what the
|
# sanitizer leg reports what the run did wrong, the coverage leg reports what the
|
||||||
# run never touched at all. Combining them would also slow both down. Packaging is
|
# run never touched at all. Combining them would also slow both down. Packaging is
|
||||||
# skipped because the leg above already publishes the DEB for this distro.
|
# skipped because the plain Ubuntu 26.04 leg publishes the DEB for this distro.
|
||||||
coverage: yes
|
coverage: yes
|
||||||
package: skip
|
package: skip
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue