mirror of
				https://github.com/XRPLF/clio.git
				synced 2025-11-04 11:55:51 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Restore cache
 | 
						|
description: Find and restores conan and ccache cache
 | 
						|
inputs:
 | 
						|
  conan_dir:
 | 
						|
    description: Path to .conan directory
 | 
						|
    required: true
 | 
						|
  conan_profile:
 | 
						|
    description: Conan profile name
 | 
						|
    required: true
 | 
						|
  ccache_dir:
 | 
						|
    description: Path to .ccache directory
 | 
						|
    required: true
 | 
						|
  build_type:
 | 
						|
    description: Current build type (e.g. Release, Debug)
 | 
						|
    required: true
 | 
						|
    default: Release
 | 
						|
  code_coverage:
 | 
						|
    description: Whether code coverage is on
 | 
						|
    required: true
 | 
						|
    default: 'false'
 | 
						|
outputs:
 | 
						|
  conan_hash:
 | 
						|
    description: Hash to use as a part of conan cache key
 | 
						|
    value: ${{ steps.conan_hash.outputs.hash }}
 | 
						|
  conan_cache_hit:
 | 
						|
    description: True if conan cache has been downloaded
 | 
						|
    value: ${{ steps.conan_cache.outputs.cache-hit }}
 | 
						|
  ccache_cache_hit:
 | 
						|
    description: True if ccache cache has been downloaded
 | 
						|
    value: ${{ steps.ccache_cache.outputs.cache-hit }}
 | 
						|
runs:
 | 
						|
  using: composite
 | 
						|
  steps:
 | 
						|
    - name: Find common commit
 | 
						|
      id: git_common_ancestor
 | 
						|
      uses: ./.github/actions/git_common_ancestor
 | 
						|
 | 
						|
    - name: Calculate conan hash
 | 
						|
      id: conan_hash
 | 
						|
      shell: bash
 | 
						|
      run: |
 | 
						|
        conan info . -j info.json -o clio:tests=True
 | 
						|
        packages_info=$(cat info.json | jq '.[] | "\(.display_name): \(.id)"' | grep -v 'clio')
 | 
						|
        echo "$packages_info"
 | 
						|
        hash=$(echo "$packages_info" | shasum -a 256 | cut -d ' ' -f 1)
 | 
						|
        rm info.json
 | 
						|
        echo "hash=$hash" >> $GITHUB_OUTPUT
 | 
						|
 | 
						|
    - name: Restore conan cache
 | 
						|
      uses: actions/cache/restore@v4
 | 
						|
      id: conan_cache
 | 
						|
      with:
 | 
						|
        path: ${{ inputs.conan_dir }}/data
 | 
						|
        key: clio-conan_data-${{ runner.os }}-${{ inputs.build_type }}-${{ inputs.conan_profile }}-develop-${{ steps.conan_hash.outputs.hash }}
 | 
						|
 | 
						|
    - name: Restore ccache cache
 | 
						|
      uses: actions/cache/restore@v4
 | 
						|
      id: ccache_cache
 | 
						|
      if: ${{ env.CCACHE_DISABLE != '1' }}
 | 
						|
      with:
 | 
						|
        path: ${{ inputs.ccache_dir }}
 | 
						|
        key: clio-ccache-${{ runner.os }}-${{ inputs.build_type }}${{ inputs.code_coverage == 'true' && '-code_coverage' || '' }}-${{ inputs.conan_profile }}-develop-${{ steps.git_common_ancestor.outputs.commit }}
 |