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: Cache CCache Volumes
    if: ${{ inputs.kind == 'all' || inputs.kind == 'cpp' }}
    uses: actions/cache@v3
    with:
      path: .docker/amd64-${{ inputs.os }}-ccache
      key: ${{ inputs.os }}-ccache-${{ env.corehash }}
      restore-keys: ${{ inputs.os }}-ccache-
  - name: Cache Conan Packages
    if: ${{ inputs.kind == 'all' || inputs.kind == 'cpp' }}
    uses: actions/cache@v3
    with:
      path: .docker/amd64-${{ inputs.os }}-conan
      key: ${{ inputs.os }}-conan-${{ hashFiles('internal/core/conanfile.*') }}
      restore-keys: ${{ inputs.os }}-conan-
  - name: Cache Third Party
    if: ${{ inputs.kind == 'all' || inputs.kind == 'thirdparty' }}
    uses: actions/cache@v3
    with:
      path: .docker/thirdparty
      key: ${{ inputs.os }}-thirdparty-${{ hashFiles('internal/core/thirdparty/**') }}
      restore-keys: ${{ inputs.os }}-thirdparty-
  - name: Cache Go Mod Volumes
    if: ${{ inputs.kind == 'all' || inputs.kind == 'go' }}
    uses: actions/cache@v3
    with:
      path: .docker/amd64-${{ inputs.os }}-go-mod
      key: ${{ inputs.os }}-go-mod-${{ hashFiles('go.sum, */go.sum') }}
      restore-keys: ${{ inputs.os }}-go-mod-