From d9a30910703620bbe5c369c6b89d070b5cdba96e Mon Sep 17 00:00:00 2001 From: Jiawei Date: Thu, 8 Oct 2026 22:49:46 +0800 Subject: [PATCH] ci: use upstream source mirrors and resilient submodule checkout Pin the shared mirror update, synchronize cached URLs, replace the retired binutils mirror in initialization and summary paths, and invalidate the source caches. --- .github/workflows/generate-summary.yaml | 16 +++++++++---- .github/workflows/init-submodules.yaml | 31 +++++++------------------ riscv-gnu-toolchain | 2 +- 3 files changed, 21 insertions(+), 28 deletions(-) diff --git a/.github/workflows/generate-summary.yaml b/.github/workflows/generate-summary.yaml index d18f502c1..7f74e239f 100644 --- a/.github/workflows/generate-summary.yaml +++ b/.github/workflows/generate-summary.yaml @@ -136,7 +136,10 @@ jobs: riscv-gnu-toolchain/glibc riscv-gnu-toolchain/newlib riscv-gnu-toolchain/qemu - key: ${{ inputs.prefix }}submodules-archive-16 # Numbered archive to allow for easy transition when bumping submodules + key: ${{ inputs.prefix }}submodules-archive-17 # Invalidate cached source URLs after the mirror switch + + - name: Synchronize submodule URLs + run: git submodule sync --recursive - name: Initialize gcc if: ${{ steps.retrieve-cache.outputs.cache-hit != 'true' }} @@ -160,7 +163,7 @@ jobs: run: | rm -rf binutils # Use the mirror since github tends to be pretty reliable for cloning. - git clone https://github.com/bminor/binutils-gdb.git binutils + git clone https://github.com/gnutools/binutils-gdb.git binutils cd binutils git checkout ${{ inputs.binutils_branch }} git pull @@ -170,6 +173,7 @@ jobs: working-directory: ./riscv-gnu-toolchain run: | cd binutils + git remote set-url origin https://github.com/gnutools/binutils-gdb.git git checkout ${{ inputs.binutils_branch }} git pull @@ -736,7 +740,10 @@ jobs: riscv-gnu-toolchain/glibc riscv-gnu-toolchain/newlib riscv-gnu-toolchain/qemu - key: ${{ inputs.prefix }}submodules-archive-16 # Numbered archive to allow for easy transition when bumping submodules + key: ${{ inputs.prefix }}submodules-archive-17 # Invalidate cached source URLs after the mirror switch + + - name: Synchronize submodule URLs + run: git submodule sync --recursive - name: Initialize gcc if: ${{ steps.retrieve-cache.outputs.cache-hit != 'true' }} @@ -760,7 +767,7 @@ jobs: run: | rm -rf binutils # Use the mirror since github tends to be pretty reliable for cloning. - git clone https://github.com/bminor/binutils-gdb.git binutils + git clone https://github.com/gnutools/binutils-gdb.git binutils cd binutils git checkout ${{ inputs.binutils_branch }} git pull @@ -770,6 +777,7 @@ jobs: working-directory: ./riscv-gnu-toolchain run: | cd binutils + git remote set-url origin https://github.com/gnutools/binutils-gdb.git git checkout ${{ inputs.binutils_branch }} git pull diff --git a/.github/workflows/init-submodules.yaml b/.github/workflows/init-submodules.yaml index 3fda6ab56..eb6c47aa3 100644 --- a/.github/workflows/init-submodules.yaml +++ b/.github/workflows/init-submodules.yaml @@ -56,32 +56,16 @@ jobs: riscv-gnu-toolchain/glibc riscv-gnu-toolchain/newlib riscv-gnu-toolchain/qemu - key: ${{ inputs.prefix }}submodules-archive-16 # Numbered archive to allow for easy transition when bumping submodules + key: ${{ inputs.prefix }}submodules-archive-17 # Invalidate cached source URLs after the mirror switch + + - name: Synchronize submodule URLs + run: git submodule sync --recursive - name: Initalize submodules cache id: cache-init if: steps.retrieve-cache.outputs.cache-hit != 'true' run: | - git submodule update --init --recursive binutils - git submodule update --init --recursive dejagnu - git submodule update --init --recursive gdb - git submodule update --init --recursive glibc - git submodule update --init --recursive newlib - git submodule update --init --recursive qemu - continue-on-error: true - - - name: Initalize submodules cache - if: steps.cache-init.outcome == 'failure' - run: | - echo "Failed to initialize cache submodules. Retrying in 1 min" - sleep 60 - git submodule update --init --recursive binutils - git submodule update --init --recursive dejagnu - git submodule update --init --recursive gdb - git submodule update --init --recursive glibc - git submodule update --init --recursive newlib - git submodule update --init --recursive qemu - git submodule update --init --recursive --rebase qemu + bash scripts/update_ci_submodules.sh binutils dejagnu gdb glibc newlib qemu - name: Initialize gcc if: steps.retrieve-cache.outputs.cache-hit != 'true' @@ -98,7 +82,7 @@ jobs: run: | rm -rf binutils # Use the mirror since github tends to be pretty reliable for cloning. - git clone https://github.com/bminor/binutils-gdb.git binutils + git clone https://github.com/gnutools/binutils-gdb.git binutils cd binutils git checkout ${{ inputs.binutils_branch }} git pull @@ -126,6 +110,7 @@ jobs: # If it's a binutils run, we need to lie about the hash if [ "${{ inputs.prefix }}" == "binutils_" ]; then cd ../binutils + git remote set-url origin https://github.com/gnutools/binutils-gdb.git git checkout ${{ inputs.binutils_branch }} git pull export GCCHASH=$(git rev-parse HEAD) @@ -146,7 +131,7 @@ jobs: riscv-gnu-toolchain/glibc riscv-gnu-toolchain/newlib riscv-gnu-toolchain/qemu - key: ${{ inputs.prefix }}submodules-archive-16 + key: ${{ inputs.prefix }}submodules-archive-17 - name: Make cache zip run: | diff --git a/riscv-gnu-toolchain b/riscv-gnu-toolchain index 0f27713bd..094a1ae85 160000 --- a/riscv-gnu-toolchain +++ b/riscv-gnu-toolchain @@ -1 +1 @@ -Subproject commit 0f27713bd57a64286fea7c2373b263b0834e5c65 +Subproject commit 094a1ae8541c848a3785d6fae348616ae5a9d544