From 2b6e6f4040796bec0035aaf97f7760d1203d4677 Mon Sep 17 00:00:00 2001 From: yellow-shine Date: Wed, 21 Aug 2024 18:46:55 +0800 Subject: [PATCH] feat: [skip e2e] effective way to use cache (#35598) issue: https://github.com/milvus-io/milvus/issues/34876 Signed-off-by: Yellow Shine --- .github/actions/cache-save/action.yaml | 7 ---- .../actions/macos-cache-restore/action.yaml | 30 ++++++++++++++ .github/actions/macos-cache-save/action.yaml | 40 +++++++++++++++++++ .github/workflows/mac.yaml | 29 +++----------- 4 files changed, 75 insertions(+), 31 deletions(-) create mode 100644 .github/actions/macos-cache-restore/action.yaml create mode 100644 .github/actions/macos-cache-save/action.yaml diff --git a/.github/actions/cache-save/action.yaml b/.github/actions/cache-save/action.yaml index 89d973b32a..73e95f6f35 100644 --- a/.github/actions/cache-save/action.yaml +++ b/.github/actions/cache-save/action.yaml @@ -12,13 +12,6 @@ inputs: runs: using: "composite" steps: - - name: Generate CCache Hash - env: - CORE_HASH: ${{ hashFiles( 'internal/core/**/*.cpp', 'internal/core/**/*.cc', 'internal/core/**/*.c', 'internal/core/**/*.h', 'internal/core/**/*.hpp', 'internal/core/**/CMakeLists.txt') }} - run: | - echo "corehash=${CORE_HASH}" >> $GITHUB_ENV - echo "Set CCache hash to ${CORE_HASH}" - shell: bash - name: Cache CCache Volumes if: ${{ inputs.kind == 'all' || inputs.kind == 'cpp' }} uses: actions/cache/save@v4 diff --git a/.github/actions/macos-cache-restore/action.yaml b/.github/actions/macos-cache-restore/action.yaml new file mode 100644 index 0000000000..e515bd9f02 --- /dev/null +++ b/.github/actions/macos-cache-restore/action.yaml @@ -0,0 +1,30 @@ +name: 'Milvus Cache' +description: '' +runs: + using: "composite" + steps: + - name: 'Generate CCache Hash' + env: + CORE_HASH: ${{ hashFiles( 'internal/core/**/*.cpp', 'internal/core/**/*.cc', 'internal/core/**/*.c', 'internal/core/**/*.h', 'internal/core/**/*.hpp', 'internal/core/**/CMakeLists.txt') }} + run: | + echo "corehash=${CORE_HASH}" >> $GITHUB_ENV + echo "Set CCache hash to ${CORE_HASH}" + shell: bash + - name: Mac Cache CCache Volumes + uses: actions/cache/restore@v4 + with: + path: /var/tmp/ccache + key: macos-ccache-${{ env.corehash }} + restore-keys: macos-ccache- + - name: Mac Cache Go Mod Volumes + uses: actions/cache/restore@v4 + with: + path: ~/go/pkg/mod + key: macos-go-mod-${{ hashFiles('**/go.sum') }} + restore-keys: macos-go-mod- + - name: Mac Cache Conan Packages + uses: actions/cache/restore@v4 + with: + path: ~/.conan + key: macos-conan-${{ hashFiles('internal/core/conanfile.*') }} + restore-keys: macos-conan- diff --git a/.github/actions/macos-cache-save/action.yaml b/.github/actions/macos-cache-save/action.yaml new file mode 100644 index 0000000000..e7da248414 --- /dev/null +++ b/.github/actions/macos-cache-save/action.yaml @@ -0,0 +1,40 @@ +name: 'Milvus Cache' +description: '' +inputs: + os: + description: 'OS name' + required: true + default: 'ubuntu20.04' + kind: + description: 'Cache kind' + required: false + default: 'all' +runs: + using: "composite" + steps: + - name: Generate CCache Hash + env: + CORE_HASH: ${{ hashFiles( 'internal/core/**/*.cpp', 'internal/core/**/*.cc', 'internal/core/**/*.c', 'internal/core/**/*.h', 'internal/core/**/*.hpp', 'internal/core/**/CMakeLists.txt') }} + run: | + echo "corehash=${CORE_HASH}" >> $GITHUB_ENV + echo "Set CCache hash to ${CORE_HASH}" + shell: bash + - name: Mac Cache CCache Volumes + uses: actions/cache/save@v4 + with: + path: /var/tmp/ccache + key: macos-ccache-${{ env.corehash }} + restore-keys: macos-ccache- + - name: Mac Cache Go Mod Volumes + uses: actions/cache/save@v4 + with: + path: ~/go/pkg/mod + key: macos-go-mod-${{ hashFiles('**/go.sum') }} + restore-keys: macos-go-mod- + - name: Mac Cache Conan Packages + uses: actions/cache/save@v4 + with: + path: ~/.conan + key: macos-conan-${{ hashFiles('internal/core/conanfile.*') }} + restore-keys: macos-conan- + diff --git a/.github/workflows/mac.yaml b/.github/workflows/mac.yaml index d66ac2f4f0..561ae78e67 100644 --- a/.github/workflows/mac.yaml +++ b/.github/workflows/mac.yaml @@ -38,18 +38,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 - - name: 'Generate CCache Hash' - env: - CORE_HASH: ${{ hashFiles( 'internal/core/**/*.cpp', 'internal/core/**/*.cc', 'internal/core/**/*.c', 'internal/core/**/*.h', 'internal/core/**/*.hpp', 'internal/core/**/CMakeLists.txt') }} - run: | - echo "corehash=${CORE_HASH}" >> $GITHUB_ENV - echo "Set CCache hash to ${CORE_HASH}" - - name: Mac Cache CCache Volumes - uses: actions/cache@v3 - with: - path: /var/tmp/ccache - key: macos-ccache-${{ env.corehash }} - restore-keys: macos-ccache- - name: Setup Python environment uses: actions/setup-python@v4 with: @@ -58,18 +46,8 @@ jobs: uses: actions/setup-go@v2.2.0 with: go-version: '~1.21.11' - - name: Mac Cache Go Mod Volumes - uses: actions/cache@v3 - with: - path: ~/go/pkg/mod - key: macos-go-mod-${{ hashFiles('**/go.sum') }} - restore-keys: macos-go-mod- - - name: Mac Cache Conan Packages - uses: actions/cache@v3 - with: - path: ~/.conan - key: macos-conan-${{ hashFiles('internal/core/conanfile.*') }} - restore-keys: macos-conan- + - name: Download Caches + uses: ./.github/actions/macos-cache-restore - name: Code Check env: CCACHE_DIR: /var/tmp/ccache @@ -94,3 +72,6 @@ jobs: with: name: cmake-log path: cmake_build/CMakeFiles/*.log + - name: Save Caches + uses: ./.github/actions/macos-cache-save + if: github.event_name != 'pull_request'