Skip to content

Commit 51f9be3

Browse files
committed
.github/workflows/dist.yml: Cache configure tarball also for linux/macos
1 parent 8256db7 commit 51f9be3

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

.github/workflows/dist.yml

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,39 @@ jobs:
9292
python-version: "3.8 - 3.12"
9393
update-environment: false
9494

95+
- name: Retrieve configure tarball cache
96+
id: cache-configure
97+
uses: actions/cache/restore@v4
98+
with:
99+
path: |
100+
build/pkgs/configure
101+
upstream/configure*
102+
key: >-
103+
configure-build=${{
104+
hashFiles('build',
105+
'configure.ac',
106+
'm4')
107+
}}
108+
109+
- name: Bootstrap
110+
if: steps.cache-configure.outputs.cache-hit != 'true'
111+
# Patch python3 spkg-configure to allow Python 3.8.0 during the CIBW_BEFORE_ALL phase
112+
run: |
113+
export PATH=$(pwd)/build/bin:$PATH
114+
eval $(sage-print-system-package-command auto --sudo --yes update)
115+
eval $(sage-print-system-package-command auto --sudo --yes --no-install-recommends --spkg install _bootstrap bzip2 xz liblzma)
116+
sed -i.bak '/m4_pushdef.*MIN_VERSION/s/3[0-9.]*/3.8.0/' build/pkgs/python3/spkg-configure.m4
117+
./bootstrap -s
118+
119+
- name: Save configure tarball cache
120+
if: steps.cache-configure.outputs.cache-hit != 'true'
121+
uses: actions/cache/save@v4
122+
with:
123+
path: |
124+
build/pkgs/configure
125+
upstream/configure*
126+
key: ${{ steps.cache-configure.outputs.cache-primary-key }}
127+
95128
- name: Build platform wheels
96129
# We build the wheel from the sdist.
97130
# But we must run cibuildwheel with the unpacked source directory, not a tarball,
@@ -101,8 +134,10 @@ jobs:
101134
# https://cibuildwheel.readthedocs.io/en/stable/options/#before-all
102135
run: |
103136
"${{ steps.python.outputs.python-path }}" -m pip install pipx
137+
if [ ! -x ./configure ]; then ./bootstrap -D; fi
138+
touch configure
104139
export PATH=build/bin:$PATH
105-
export CIBW_BEFORE_ALL="( $(sage-print-system-package-command debian --yes --no-install-recommends install $(sage-get-system-packages debian $SPKGS)) || $(sage-print-system-package-command fedora --yes --no-install-recommends install $(sage-get-system-packages fedora $SPKGS | sed s/pkg-config/pkgconfig/)) || ( $(sage-print-system-package-command homebrew --yes --no-install-recommends install $(sage-get-system-packages homebrew $SPKGS)) || $(sage-print-system-package-command alpine --yes --no-install-recommends install $(sage-get-system-packages alpine $SPKGS)) || echo error ignored) ) && ./bootstrap && ./configure --enable-build-as-root --enable-fat-binary --disable-python-distutils-check && MAKE=\"make -j6\" make V=0 $TARGETS_PRE"
140+
export CIBW_BEFORE_ALL="( $(sage-print-system-package-command debian --yes --no-install-recommends install $(sage-get-system-packages debian $SPKGS)) || $(sage-print-system-package-command fedora --yes --no-install-recommends install $(sage-get-system-packages fedora $SPKGS | sed s/pkg-config/pkgconfig/)) || ( $(sage-print-system-package-command homebrew --yes --no-install-recommends install $(sage-get-system-packages homebrew $SPKGS)) || $(sage-print-system-package-command alpine --yes --no-install-recommends install $(sage-get-system-packages alpine $SPKGS)) || echo error ignored) ) && ./configure --enable-build-as-root --enable-fat-binary --disable-python-distutils-check && MAKE=\"make -j6\" make V=0 $TARGETS_PRE"
106141
mkdir -p unpacked
107142
for pkg in passagemath_primesieve_primecount; do
108143
(cd unpacked && tar xfz - ) < dist/$pkg*.tar.gz
@@ -206,7 +241,7 @@ jobs:
206241
207242
- name: Bootstrap
208243
if: steps.cache-configure.outputs.cache-hit != 'true'
209-
# Patch python3 spkg-configure to allow Python 3.9.0 during the CIBW_BEFORE_ALL phase
244+
# Patch python3 spkg-configure to allow Python 3.8.0 during the CIBW_BEFORE_ALL phase
210245
run: |
211246
export PATH=$(pwd)/build/bin:$PATH
212247
eval $(sage-print-system-package-command auto --yes update)

0 commit comments

Comments
 (0)