Skip to content

Commit 59e0970

Browse files
author
oech3
committed
GnuTests: Cache config.cache and getlimits for faster setup
1 parent 13c1624 commit 59e0970

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

.github/workflows/GnuTests.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: GnuTests
22

33
# spell-checker:ignore (abbrev/names) CodeCov gnulib GnuTests Swatinem
44
# spell-checker:ignore (jargon) submodules devel
5-
# spell-checker:ignore (libs/utils) autopoint chksum getenforce gperf lcov libexpect limactl pyinotify setenforce shopt texinfo valgrind libattr libcap taiki-e
5+
# spell-checker:ignore (libs/utils) autopoint chksum getenforce getlimits gperf lcov libexpect limactl pyinotify setenforce shopt texinfo valgrind libattr libcap taiki-e
66
# spell-checker:ignore (options) Ccodegen Coverflow Cpanic Zpanic
77
# spell-checker:ignore (people) Dawid Dziurla * dawidd dtolnay
88
# spell-checker:ignore (vars) FILESET SUBDIRS XPASS
@@ -74,6 +74,17 @@ jobs:
7474
git config submodule.gnulib.url https://github.com/coreutils/gnulib.git
7575
git submodule update --init --recursive --depth 1
7676
working-directory: gnu
77+
- name: Restore config.cache
78+
uses: actions/cache@v4
79+
id: cache-config-gnu
80+
with:
81+
path: |
82+
gnu/config.cache
83+
gnu/src/getlimits
84+
key: ${{ runner.os }}-gnu-config-${{ env.REPO_GNU_REF }}-${{ hashFiles('gnu/configure') }}
85+
restore-keys: |
86+
${{ runner.os }}-gnu-config-${{ env.REPO_GNU_REF }}-
87+
${{ runner.os }}-gnu-config-
7788
7889
#### Build environment setup
7990
- name: Install dependencies
@@ -115,6 +126,15 @@ jobs:
115126
## Build binaries
116127
cd 'uutils'
117128
env PROFILE=release-small bash util/build-gnu.sh
129+
130+
- name: Save config.cache
131+
uses: actions/cache/save@v4
132+
if: always() && steps.cache-config-gnu.outputs.cache-hit != 'true'
133+
with:
134+
path: |
135+
gnu/config.cache
136+
gnu/src/getlimits
137+
key: ${{ runner.os }}-gnu-config-${{ env.REPO_GNU_REF }}-${{ hashFiles('gnu/configure') }}
118138

119139
### Run tests as user
120140
- name: Run GNU tests

util/build-gnu.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,16 @@ else
134134
"${SED}" -i '/^wget.*/d' bootstrap.conf # wget is used to DL po. Remove the dep.
135135
./bootstrap --skip-po
136136
# Use CFLAGS for best build time since we discard GNU coreutils
137-
CFLAGS="${CFLAGS} -pipe -O0 -s" ./configure --quiet --disable-gcc-warnings --disable-nls --disable-dependency-tracking --disable-bold-man-page-references \
137+
CFLAGS="${CFLAGS} -pipe -O0 -s" ./configure -C --quiet --disable-gcc-warnings --disable-nls --disable-dependency-tracking --disable-bold-man-page-references \
138138
--enable-single-binary=symlinks \
139139
"$([ "${SELINUX_ENABLED}" = 1 ] && echo --with-selinux || echo --without-selinux)"
140140
#Add timeout to to protect against hangs
141141
"${SED}" -i 's|^"\$@|'"${SYSTEM_TIMEOUT}"' 600 "\$@|' build-aux/test-driver
142142
# Use a better diff
143143
"${SED}" -i 's|diff -c|diff -u|g' tests/Coreutils.pm
144-
"${MAKE}" -j "$("${NPROC}")"
144+
# Allow to omit make by reusing getlimits
145+
test -f "${UU_BUILD_DIR}/getlimits" || "${MAKE}" -j "$("${NPROC}")"
146+
cp src/getlimits "${UU_BUILD_DIR}"
145147

146148
# Handle generated factor tests
147149
t_first=00
@@ -223,8 +225,6 @@ sed -i -e "s|---dis ||g" tests/tail/overlay-headers.sh
223225
# Do not FAIL, just do a regular ERROR
224226
"${SED}" -i -e "s|framework_failure_ 'no inotify_add_watch';|fail=1;|" tests/tail/inotify-rotate-resources.sh
225227

226-
test -f "${UU_BUILD_DIR}/getlimits" || cp src/getlimits "${UU_BUILD_DIR}"
227-
228228
# pr produces very long log and this command isn't super interesting
229229
# SKIP for now
230230
"${SED}" -i -e "s|my \$prog = 'pr';$|my \$prog = 'pr';CuSkip::skip \"\$prog: SKIP for producing too long logs\";|" tests/pr/pr-tests.pl

0 commit comments

Comments
 (0)