Skip to content

Commit 2e01a71

Browse files
authored
[3.11] CI: Use ImageOS (ubuntu24) instead of runner.os (Linux) in cache keys (GH-130200) (#130252)
1 parent 77ca2f6 commit 2e01a71

File tree

3 files changed

+32
-37
lines changed

3 files changed

+32
-37
lines changed

.github/workflows/build.yml

+18-23
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,11 @@ on:
88
push:
99
branches:
1010
- 'main'
11-
- '3.11'
12-
- '3.10'
13-
- '3.9'
14-
- '3.8'
11+
- '3.*'
1512
pull_request:
1613
branches:
1714
- 'main'
18-
- '3.11'
19-
- '3.10'
20-
- '3.9'
21-
- '3.8'
15+
- '3.*'
2216

2317
permissions:
2418
contents: read
@@ -146,16 +140,17 @@ jobs:
146140
with:
147141
python-version: '3.x'
148142
- name: Runner image version
149-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
143+
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
150144
- name: Restore config.cache
151145
uses: actions/cache@v4
152146
with:
153147
path: config.cache
154-
key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}-${{ env.pythonLocation }}
155-
- name: Install Dependencies
148+
# Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
149+
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.check_source.outputs.config_hash }}-${{ env.pythonLocation }}
150+
- name: Install dependencies
156151
run: sudo ./.github/workflows/posix-deps-apt.sh
157152
- name: Add ccache to PATH
158-
run: echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
153+
run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
159154
- name: Configure ccache action
160155
uses: hendrikmuhs/[email protected]
161156
with:
@@ -244,15 +239,15 @@ jobs:
244239
steps:
245240
- uses: actions/checkout@v4
246241
- name: Runner image version
247-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
242+
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
248243
- name: Restore config.cache
249244
uses: actions/cache@v4
250245
with:
251246
path: config.cache
252-
key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}
247+
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.check_source.outputs.config_hash }}
253248
- name: Register gcc problem matcher
254249
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
255-
- name: Install Dependencies
250+
- name: Install dependencies
256251
run: sudo ./.github/workflows/posix-deps-apt.sh
257252
- name: Configure OpenSSL env vars
258253
run: |
@@ -297,25 +292,25 @@ jobs:
297292
steps:
298293
- uses: actions/checkout@v4
299294
- name: Runner image version
300-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
295+
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
301296
- name: Restore config.cache
302297
uses: actions/cache@v4
303298
with:
304299
path: config.cache
305-
key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}
300+
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.check_source.outputs.config_hash }}
306301
- name: Register gcc problem matcher
307302
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
308-
- name: Install Dependencies
303+
- name: Install dependencies
309304
run: sudo ./.github/workflows/posix-deps-apt.sh
310305
- name: Set up GCC-10 for ASAN
311306
uses: egor-tensin/setup-gcc@v1
312307
with:
313308
version: 10
314309
- name: Configure OpenSSL env vars
315310
run: |
316-
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
317-
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
318-
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
311+
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
312+
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
313+
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
319314
- name: 'Restore OpenSSL build'
320315
id: cache-openssl
321316
uses: actions/cache@v4
@@ -324,10 +319,10 @@ jobs:
324319
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
325320
- name: Install OpenSSL
326321
if: steps.cache-openssl.outputs.cache-hit != 'true'
327-
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
322+
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
328323
- name: Add ccache to PATH
329324
run: |
330-
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
325+
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
331326
- name: Configure ccache action
332327
uses: hendrikmuhs/[email protected]
333328
with:

.github/workflows/reusable-macos.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ jobs:
3030
steps:
3131
- uses: actions/checkout@v4
3232
- name: Runner image version
33-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
33+
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
3434
- name: Restore config.cache
3535
uses: actions/cache@v4
3636
with:
3737
path: config.cache
38-
key: ${{ github.job }}-${{ matrix.os }}-${{ env.IMAGE_VERSION }}-${{ inputs.config_hash }}
38+
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
3939
- name: Install Homebrew dependencies
4040
run: |
4141
brew install pkg-config [email protected] xz gdbm tcl-tk@8

.github/workflows/reusable-ubuntu.yml

+12-12
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ jobs:
2828
run: sudo ./.github/workflows/posix-deps-apt.sh
2929
- name: Configure OpenSSL env vars
3030
run: |
31-
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
32-
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
33-
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
31+
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
32+
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
33+
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
3434
- name: 'Restore OpenSSL build'
3535
id: cache-openssl
3636
uses: actions/cache@v4
@@ -39,30 +39,30 @@ jobs:
3939
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
4040
- name: Install OpenSSL
4141
if: steps.cache-openssl.outputs.cache-hit != 'true'
42-
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
42+
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
4343
- name: Add ccache to PATH
4444
run: |
45-
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
45+
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
4646
- name: Configure ccache action
4747
uses: hendrikmuhs/[email protected]
4848
with:
4949
save: ${{ github.event_name == 'push' }}
5050
max-size: "200M"
5151
- name: Setup directory envs for out-of-tree builds
5252
run: |
53-
echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV
54-
echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
53+
echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
54+
echo "CPYTHON_BUILDDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-builddir)" >> "$GITHUB_ENV"
5555
- name: Create directories for read-only out-of-tree builds
56-
run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
56+
run: mkdir -p "$CPYTHON_RO_SRCDIR" "$CPYTHON_BUILDDIR"
5757
- name: Bind mount sources read-only
58-
run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
58+
run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR"
5959
- name: Runner image version
60-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
60+
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
6161
- name: Restore config.cache
6262
uses: actions/cache@v4
6363
with:
6464
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
65-
key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ inputs.config_hash }}
65+
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
6666
- name: Configure CPython out-of-tree
6767
working-directory: ${{ env.CPYTHON_BUILDDIR }}
6868
run: ${{ inputs.options }}
@@ -74,7 +74,7 @@ jobs:
7474
run: make pythoninfo
7575
- name: Remount sources writable for tests
7676
# some tests write to srcdir, lack of pyc files slows down testing
77-
run: sudo mount $CPYTHON_RO_SRCDIR -oremount,rw
77+
run: sudo mount "$CPYTHON_RO_SRCDIR" -oremount,rw
7878
- name: Tests
7979
working-directory: ${{ env.CPYTHON_BUILDDIR }}
8080
run: xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu"

0 commit comments

Comments
 (0)