[3.13] GH-139596: Cease caching config.cache & ccache in GH Actions (GH-141429) (#141569)

(cherry picked from commit a2442fda6e)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
This commit is contained in:
Hugo van Kemenade 2025-11-15 00:51:36 +02:00 committed by GitHub
parent 9648eed33f
commit 76db223ff8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 0 additions and 110 deletions

View file

@ -154,20 +154,10 @@ jobs:
python-version: '3.x' python-version: '3.x'
- name: Runner image version - name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: config.cache
# Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}-${{ env.pythonLocation }}
- name: Install dependencies - name: Install dependencies
run: sudo ./.github/workflows/posix-deps-apt.sh run: sudo ./.github/workflows/posix-deps-apt.sh
- name: Add ccache to PATH - name: Add ccache to PATH
run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: false
- name: Configure CPython - name: Configure CPython
run: | run: |
# Build Python with the libpython dynamic library # Build Python with the libpython dynamic library
@ -268,7 +258,6 @@ jobs:
free-threading: true free-threading: true
uses: ./.github/workflows/reusable-macos.yml uses: ./.github/workflows/reusable-macos.yml
with: with:
config_hash: ${{ needs.build-context.outputs.config-hash }}
free-threading: ${{ matrix.free-threading }} free-threading: ${{ matrix.free-threading }}
os: ${{ matrix.os }} os: ${{ matrix.os }}
@ -286,7 +275,6 @@ jobs:
- true - true
uses: ./.github/workflows/reusable-ubuntu.yml uses: ./.github/workflows/reusable-ubuntu.yml
with: with:
config_hash: ${{ needs.build-context.outputs.config-hash }}
free-threading: ${{ matrix.free-threading }} free-threading: ${{ matrix.free-threading }}
build-ubuntu-ssltests: build-ubuntu-ssltests:
@ -314,11 +302,6 @@ jobs:
persist-credentials: false persist-credentials: false
- name: Runner image version - name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
- name: Register gcc problem matcher - name: Register gcc problem matcher
run: echo "::add-matcher::.github/problem-matchers/gcc.json" run: echo "::add-matcher::.github/problem-matchers/gcc.json"
- name: Install dependencies - name: Install dependencies
@ -340,10 +323,6 @@ jobs:
- name: Add ccache to PATH - name: Add ccache to PATH
run: | run: |
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: false
- name: Configure CPython - name: Configure CPython
run: ./configure --config-cache --with-pydebug --with-openssl=$OPENSSL_DIR run: ./configure --config-cache --with-pydebug --with-openssl=$OPENSSL_DIR
- name: Build CPython - name: Build CPython
@ -380,8 +359,6 @@ jobs:
needs: build-context needs: build-context
if: needs.build-context.outputs.run-tests == 'true' if: needs.build-context.outputs.run-tests == 'true'
uses: ./.github/workflows/reusable-wasi.yml uses: ./.github/workflows/reusable-wasi.yml
with:
config_hash: ${{ needs.build-context.outputs.config-hash }}
test-hypothesis: test-hypothesis:
name: "Hypothesis tests on Ubuntu" name: "Hypothesis tests on Ubuntu"
@ -417,10 +394,6 @@ jobs:
- name: Add ccache to PATH - name: Add ccache to PATH
run: | run: |
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: false
- name: Setup directory envs for out-of-tree builds - name: Setup directory envs for out-of-tree builds
run: | run: |
echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV" echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
@ -431,11 +404,6 @@ jobs:
run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR" run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR"
- name: Runner image version - name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
- name: Configure CPython out-of-tree - name: Configure CPython out-of-tree
working-directory: ${{ env.CPYTHON_BUILDDIR }} working-directory: ${{ env.CPYTHON_BUILDDIR }}
run: | run: |
@ -518,11 +486,6 @@ jobs:
persist-credentials: false persist-credentials: false
- name: Runner image version - name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
- name: Register gcc problem matcher - name: Register gcc problem matcher
run: echo "::add-matcher::.github/problem-matchers/gcc.json" run: echo "::add-matcher::.github/problem-matchers/gcc.json"
- name: Install dependencies - name: Install dependencies
@ -548,11 +511,6 @@ jobs:
- name: Add ccache to PATH - name: Add ccache to PATH
run: | run: |
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: ${{ github.event_name == 'push' }}
max-size: "200M"
- name: Configure CPython - name: Configure CPython
run: ./configure --config-cache --with-address-sanitizer --without-pymalloc run: ./configure --config-cache --with-address-sanitizer --without-pymalloc
- name: Build CPython - name: Build CPython
@ -580,7 +538,6 @@ jobs:
uses: ./.github/workflows/reusable-san.yml uses: ./.github/workflows/reusable-san.yml
with: with:
sanitizer: ${{ matrix.sanitizer }} sanitizer: ${{ matrix.sanitizer }}
config_hash: ${{ needs.build-context.outputs.config-hash }}
free-threading: ${{ matrix.free-threading }} free-threading: ${{ matrix.free-threading }}
# CIFuzz job based on https://google.github.io/oss-fuzz/getting-started/continuous-integration/ # CIFuzz job based on https://google.github.io/oss-fuzz/getting-started/continuous-integration/

View file

@ -17,9 +17,6 @@ on: # yamllint disable-line rule:truthy
# || 'falsy-branch' # || 'falsy-branch'
# }} # }}
# #
config-hash:
description: Config hash value for use in cache keys
value: ${{ jobs.compute-changes.outputs.config-hash }} # str
run-docs: run-docs:
description: Whether to build the docs description: Whether to build the docs
value: ${{ jobs.compute-changes.outputs.run-docs }} # bool value: ${{ jobs.compute-changes.outputs.run-docs }} # bool
@ -42,7 +39,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 10 timeout-minutes: 10
outputs: outputs:
config-hash: ${{ steps.config-hash.outputs.hash }}
run-ci-fuzz: ${{ steps.changes.outputs.run-ci-fuzz }} run-ci-fuzz: ${{ steps.changes.outputs.run-ci-fuzz }}
run-docs: ${{ steps.changes.outputs.run-docs }} run-docs: ${{ steps.changes.outputs.run-docs }}
run-tests: ${{ steps.changes.outputs.run-tests }} run-tests: ${{ steps.changes.outputs.run-tests }}
@ -100,8 +96,3 @@ jobs:
GITHUB_EVENT_NAME: ${{ github.event_name }} GITHUB_EVENT_NAME: ${{ github.event_name }}
CCF_TARGET_REF: ${{ github.base_ref || github.event.repository.default_branch }} CCF_TARGET_REF: ${{ github.base_ref || github.event.repository.default_branch }}
CCF_HEAD_REF: ${{ github.event.pull_request.head.sha || github.sha }} CCF_HEAD_REF: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Compute hash for config cache key
id: config-hash
run: |
echo "hash=${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}" >> "$GITHUB_OUTPUT"

View file

@ -3,9 +3,6 @@ name: Reusable macOS
on: on:
workflow_call: workflow_call:
inputs: inputs:
config_hash:
required: true
type: string
free-threading: free-threading:
required: false required: false
type: boolean type: boolean
@ -36,11 +33,6 @@ jobs:
persist-credentials: false persist-credentials: false
- name: Runner image version - name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
- name: Install Homebrew dependencies - name: Install Homebrew dependencies
run: | run: |
brew install pkg-config openssl@3.0 xz gdbm tcl-tk@8 brew install pkg-config openssl@3.0 xz gdbm tcl-tk@8

View file

@ -6,9 +6,6 @@ on:
sanitizer: sanitizer:
required: true required: true
type: string type: string
config_hash:
required: true
type: string
free-threading: free-threading:
description: Whether to use free-threaded mode description: Whether to use free-threaded mode
required: false required: false
@ -34,11 +31,6 @@ jobs:
persist-credentials: false persist-credentials: false
- name: Runner image version - name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.sanitizer }}-${{ inputs.config_hash }}
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo ./.github/workflows/posix-deps-apt.sh sudo ./.github/workflows/posix-deps-apt.sh
@ -77,11 +69,6 @@ jobs:
- name: Add ccache to PATH - name: Add ccache to PATH
run: | run: |
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: ${{ github.event_name == 'push' }}
max-size: "200M"
- name: Configure CPython - name: Configure CPython
run: >- run: >-
./configure ./configure

View file

@ -3,9 +3,6 @@ name: Reusable Ubuntu
on: on:
workflow_call: workflow_call:
inputs: inputs:
config_hash:
required: true
type: string
free-threading: free-threading:
description: Whether to use free-threaded mode description: Whether to use free-threaded mode
required: false required: false
@ -53,11 +50,6 @@ jobs:
- name: Add ccache to PATH - name: Add ccache to PATH
run: | run: |
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: Configure ccache action
uses: hendrikmuhs/ccache-action@v1.2
with:
save: ${{ github.event_name == 'push' }}
max-size: "200M"
- name: Setup directory envs for out-of-tree builds - name: Setup directory envs for out-of-tree builds
run: | run: |
echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV" echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
@ -68,11 +60,6 @@ jobs:
run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR" run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR"
- name: Runner image version - name: Runner image version
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: Restore config.cache
uses: actions/cache@v4
with:
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
- name: Configure CPython out-of-tree - name: Configure CPython out-of-tree
working-directory: ${{ env.CPYTHON_BUILDDIR }} working-directory: ${{ env.CPYTHON_BUILDDIR }}
run: >- run: >-

View file

@ -2,10 +2,6 @@ name: Reusable WASI
on: on:
workflow_call: workflow_call:
inputs:
config_hash:
required: true
type: string
env: env:
FORCE_COLOR: 1 FORCE_COLOR: 1
@ -42,11 +38,6 @@ jobs:
mkdir "${WASI_SDK_PATH}" && \ mkdir "${WASI_SDK_PATH}" && \
curl -s -S --location "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_VERSION}.0-x86_64-linux.tar.gz" | \ curl -s -S --location "https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_VERSION}.0-x86_64-linux.tar.gz" | \
tar --strip-components 1 --directory "${WASI_SDK_PATH}" --extract --gunzip tar --strip-components 1 --directory "${WASI_SDK_PATH}" --extract --gunzip
- name: "Configure ccache action"
uses: hendrikmuhs/ccache-action@v1.2
with:
save: ${{ github.event_name == 'push' }}
max-size: "200M"
- name: "Add ccache to PATH" - name: "Add ccache to PATH"
run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
- name: "Install Python" - name: "Install Python"
@ -55,24 +46,10 @@ jobs:
python-version: '3.x' python-version: '3.x'
- name: "Runner image version" - name: "Runner image version"
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV" run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
- name: "Restore Python build config.cache"
uses: actions/cache@v4
with:
path: ${{ env.CROSS_BUILD_PYTHON }}/config.cache
# Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python.
# Include the hash of `Tools/wasm/wasi.py` as it may change the environment variables.
# (Make sure to keep the key in sync with the other config.cache step below.)
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ env.WASI_SDK_VERSION }}-${{ env.WASMTIME_VERSION }}-${{ inputs.config_hash }}-${{ hashFiles('Tools/wasm/wasi.py') }}-${{ env.pythonLocation }}
- name: "Configure build Python" - name: "Configure build Python"
run: python3 Tools/wasm/wasi.py configure-build-python -- --config-cache --with-pydebug run: python3 Tools/wasm/wasi.py configure-build-python -- --config-cache --with-pydebug
- name: "Make build Python" - name: "Make build Python"
run: python3 Tools/wasm/wasi.py make-build-python run: python3 Tools/wasm/wasi.py make-build-python
- name: "Restore host config.cache"
uses: actions/cache@v4
with:
path: ${{ env.CROSS_BUILD_WASI }}/config.cache
# Should be kept in sync with the other config.cache step above.
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ env.WASI_SDK_VERSION }}-${{ env.WASMTIME_VERSION }}-${{ inputs.config_hash }}-${{ hashFiles('Tools/wasm/wasi.py') }}-${{ env.pythonLocation }}
- name: "Configure host" - name: "Configure host"
# `--with-pydebug` inferred from configure-build-python # `--with-pydebug` inferred from configure-build-python
run: python3 Tools/wasm/wasi.py configure-host -- --config-cache run: python3 Tools/wasm/wasi.py configure-host -- --config-cache

1
.gitignore vendored
View file

@ -134,7 +134,6 @@ Tools/unicode/data/
/config.log /config.log
/config.status /config.status
/config.status.lineno /config.status.lineno
# hendrikmuhs/ccache-action@v1
/.ccache /.ccache
/cross-build/ /cross-build/
/jit_stencils*.h /jit_stencils*.h