8000 CI: Cache config.cache across runs to speed up build (#104800) · python/cpython@1080c43 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1080c43

Browse files
authored
CI: Cache config.cache across runs to speed up build (#104800)
1 parent 278030a commit 1080c43

File tree

1 file changed

+45
-6
lines changed

1 file changed

+45
-6
lines changed

.github/workflows/build.yml

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ jobs:
8383
if: needs.check_source.outputs.run_tests == 'true'
8484
steps:
8585
- uses: actions/checkout@v3
86+
- name: Restore config.cache
87+
uses: actions/cache@v3
88+
with:
89+
path: config.cache
90+
key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}
8691
- uses: actions/setup-python@v3
8792
- name: Install Dependencies
8893
run: sudo ./.github/workflows/posix-deps-apt.sh
@@ -99,7 +104,7 @@ jobs:
99104
- name: Configure CPython
100105
run: |
101106
# Build Python with the libpython dynamic library
102-
./configure --with-pydebug --enable-shared
107+
./configure --config-cache --with-pydebug --enable-shared
103108
- name: Regenerate autoconf files with container image
104109
run: make regen-configure
105110
- name: Build CPython
@@ -180,6 +185,11 @@ jobs:
180185
PYTHONSTRICTEXTENSIONBUILD: 1
181186
steps:
182187
- uses: actions/checkout@v3
188+
- name: Restore config.cache
189+
uses: actions/cache@v3
190+
with:
191+
path: config.cache
192+
key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}
183193
- name: Install Homebrew dependencies
184194
run: brew install pkg-config openssl@1.1 xz gdbm tcl-tk
185195
- name: Configure CPython
@@ -188,6 +198,7 @@ jobs:
188198
LDFLAGS="-L$(brew --prefix gdbm)/lib -I$(brew --prefix xz)/lib" \
189199
PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \
190200
./configure \
201+
--config-cache \
191202
--with-pydebug \
192203
--prefix=/opt/python-dev \
193204
--with-openssl="$(brew --prefix openssl@1.1)"
@@ -240,9 +251,18 @@ jobs:
240251
run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
241252
- name: Bind mount sources read-only
242253
run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
254+
- name: Restore config.cache
255+
uses: actions/cache@v3
256+
with:
257+
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
258+
key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}
243259
- name: Configure CPython out-of-tree
244260
working-directory: ${{ env.CPYTHON_BUILDDIR }}
245-
run: ../cpython-ro-srcdir/configure --with-pydebug --with-openssl=$OPENSSL_DIR
261+
run: |
262+
../cpython-ro-srcdir/configure \
263+
--config-cache \
264+
--with-pydebug \
265+
--with-openssl=$OPENSSL_DIR
246266
- name: 10000 Build CPython out-of-tree
247267
working-directory: ${{ env.CPYTHON_BUILDDIR }}
248268
run: make -j4
@@ -273,6 +293,11 @@ jobs:
273293
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}/lib
274294
steps:
275295
- uses: actions/checkout@v3
296+
- name: Restore config.cache
297+
uses: actions/cache@v3
298+
with:
299+
path: config.cache
300+
key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}
276301
- name: Register gcc problem matcher
277302
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
278303
- name: Install Dependencies
@@ -297,7 +322,7 @@ jobs:
297322
- name: Configure ccache action
298323
uses: hendrikmuhs/ccache-action@v1.2
299324
- name: Configure CPython
300-
run: ./configure --with-pydebug --with-openssl=$OPENSSL_DIR
325+
run: ./configure --config-cache --with-pydebug --with-openssl=$OPENSSL_DIR
301326
- name: Build CPython
302327
run: make -j4
303328
- name: Display build info
@@ -306,7 +331,7 @@ jobs:
306331
run: ./python Lib/test/ssltests.py
307332

308333
test_hypothesis:
309-
name: "Hypothesis Tests on Ubuntu"
334+
name: "Hypothesis tests on Ubuntu"
310335
runs-on: ubuntu-20.04
311336
timeout-minutes: 60
312337
needs: check_source
@@ -347,9 +372,18 @@ jobs:
347372
run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
348373
- name: Bind mount sources read-only
349374
run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
375+
- name: Restore config.cache
376+
uses: actions/cache@v3
377+
with:
378+
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
379+
key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}
350380
- name: Configure CPython out-of-tree
351381
working-directory: ${{ env.CPYTHON_BUILDDIR }}
352-
run: ../cpython-ro-srcdir/configure --with-pydebug --with-openssl=$OPENSSL_DIR
382+
run: |
383+
../cpython-ro-srcdir/configure \
384+
--config-cache \
385+
--with-pydebug \
386+
--with-openssl=$OPENSSL_DIR
353387
- name: Build CPython out-of-tree
354388
working-directory: ${{ env.CPYTHON_BUILDDIR }}
355389
run: make -j4
@@ -417,6 +451,11 @@ jobs:
417451
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
418452
steps:
419453
- uses: actions/checkout@v3
454+
- name: Restore config.cache
455+
uses: actions/cache@v3
456+
with:
457+
path: config.cache
458+
key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}
420459
- name: Register gcc problem matcher
421460
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
422461
- name: Install Dependencies
@@ -445,7 +484,7 @@ jobs:
445484
- name: Configure ccache action
446485
uses: hendrikmuhs/ccache-action@v1.2
447486
- name: Configure CPython
448-
run: ./configure --with-address-sanitizer --without-pymalloc
487+
run: ./configure --config-cache --with-address-sanitizer --without-pymalloc
449488
- name: Build CPython
450489
run: make -j4
451490
- name: Display build info

0 commit comments

Comments
 (0)
0