diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f9f1500..608939a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -411,6 +411,16 @@ jobs: - uses: actions/download-artifact@v4 with: name: profile + - name: Cache downloads + id: cache-tarballs + uses: actions/cache@v4 + with: + path: /opt/cache + key: tarballs-${{ hashFiles('build-make.sh') }} + - name: Restore cache + if: steps.cache-tarballs.outputs.cache-hit != '' + run: | + ln -s /opt/cache/*.tar.* . - name: Build env: LLVM_VERSION: ${{needs.prepare.outputs.LLVM_VERSION}} @@ -427,6 +437,13 @@ jobs: NAME=llvm-mingw-$TAG-${{matrix.crt}}-${{matrix.arch}} mv llvm-mingw $NAME zip -9rq ../$NAME.zip $NAME + - name: Save cache + if: steps.cache-tarballs.outputs.cache-hit != 'true' + run: | + mkdir -p /opt/cache + for i in make-*.tar.*; do + if [ ! -L $i ]; then cp -a $i /opt/cache; fi + done - uses: actions/upload-artifact@v4 with: name: windows-${{matrix.crt}}-${{matrix.arch}}-toolchain diff --git a/build-make.sh b/build-make.sh index 7cad409..cca3cf3 100755 --- a/build-make.sh +++ b/build-make.sh @@ -52,7 +52,9 @@ download() { } if [ ! -d make-$MAKE_VERSION ]; then - download https://ftpmirror.gnu.org/gnu/make/make-$MAKE_VERSION.tar.gz + if [ ! -e make-$MAKE_VERSION.tar.gz ]; then + download https://ftpmirror.gnu.org/gnu/make/make-$MAKE_VERSION.tar.gz + fi tar -zxf make-$MAKE_VERSION.tar.gz fi