Kaynağa Gözat

Add ccache setup and environment configuration

jimsterino98 4 ay önce
ebeveyn
işleme
efe0f46ca7
1 değiştirilmiş dosya ile 35 ekleme ve 0 silme
  1. 35 0
      .github/workflows/build.yml

+ 35 - 0
.github/workflows/build.yml

@@ -72,6 +72,41 @@ jobs:
         with:
           swap-size-gb: 25          # 10-24 GB is common for heavy LTO
         # swap-space-path: /mnt/swapfile   # optional
+
+      - name: Install ccache
+        run: sudo apt-get update && sudo apt-get install -y ccache
+
+      - name: Parse branch for hierarchical cache keys
+        run: |
+          FULL_BRANCH="${{ inputs.branch }}"
+          echo "FULL_BRANCH=$FULL_BRANCH" >> $GITHUB_ENV
+          
+          BASE_BRANCH=$(echo "$FULL_BRANCH" | sed -E 's/(-bit[0-9]+.*$)|(-bit.*$)//i')
+          echo "BASE_BRANCH=$BASE_BRANCH" >> $GITHUB_ENV
+
+      - name: Setup ccache
+        uses: hendrikmuhs/ccache-action@v1.2
+        with:
+          max-size: "10G"
+          key: ccache-${{ runner.os }}-${{ env.BASE_BRANCH }}
+          restore-keys: |
+            ccache-${{ runner.os }}-${{ env.BASE_BRANCH }}
+
+      - name: Export ccache + determinism
+        run: |
+          echo "CCACHE_DIR=${{ github.workspace }}/.ccache" >> $GITHUB_ENV
+          echo "CCACHE_COMPRESS=true" >> $GITHUB_ENV
+          echo "CCACHE_COMPRESSLEVEL=6" >> $GITHUB_ENV
+          echo "CCACHE_CPP2=true" >> $GITHUB_ENV
+          echo "CCACHE_BASEDIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
+          echo "KBUILD_BUILD_TIMESTAMP=2020-01-01" >> $GITHUB_ENV
+          echo "KBUILD_BUILD_VERSION=1" >> $GITHUB_ENV
+
+      - name: Ensure ccache is used
+        run: |
+          echo 'export PATH="/usr/lib/ccache:$PATH"' >> $GITHUB_ENV
+          echo 'export CC="ccache clang"' >> $GITHUB_ENV
+          echo 'export CXX="ccache clang++"' >> $GITHUB_ENV
         
       - name: Set CONFIG Environment Variable
         run: |