mirror of
				https://github.com/XRPLF/clio.git
				synced 2025-11-04 03:45:50 +00:00 
			
		
		
		
	I started with really simple pre-commit hooks and will add more on top. Important files: - `.pre-commit-config.yaml` - the config for pre-commit - `.github/workflows/pre-commit.yml` - runs pre-commit hooks in branches and `develop` - `.github/workflows/pre-commit-autoupdate.yml` - autoupdates pre-commit hooks once in a month
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Run conan and cmake
 | 
						|
description: Run conan and cmake
 | 
						|
inputs:
 | 
						|
  conan_profile:
 | 
						|
    description: Conan profile name
 | 
						|
    required: true
 | 
						|
  conan_cache_hit:
 | 
						|
    description: Whether conan cache has been downloaded
 | 
						|
    required: true
 | 
						|
    default: 'false'
 | 
						|
  build_type:
 | 
						|
    description: Build type for third-party libraries and clio. Could be 'Release', 'Debug'
 | 
						|
    required: true
 | 
						|
    default: 'Release'
 | 
						|
  build_integration_tests:
 | 
						|
    description: Whether to build integration tests
 | 
						|
    required: true
 | 
						|
    default: 'true'
 | 
						|
  code_coverage:
 | 
						|
    description: Whether conan's coverage option should be on or not
 | 
						|
    required: true
 | 
						|
    default: 'false'
 | 
						|
  static:
 | 
						|
    description: Whether Clio is to be statically linked
 | 
						|
    required: true
 | 
						|
    default: 'false'
 | 
						|
  sanitizer:
 | 
						|
    description: Sanitizer to use
 | 
						|
    required: true
 | 
						|
    default: 'false' # false, tsan, asan or ubsan
 | 
						|
runs:
 | 
						|
  using: composite
 | 
						|
  steps:
 | 
						|
    - name: Create build directory
 | 
						|
      shell: bash
 | 
						|
      run: mkdir -p build
 | 
						|
 | 
						|
    - name: Run conan
 | 
						|
      shell: bash
 | 
						|
      env:
 | 
						|
        BUILD_OPTION: "${{ inputs.conan_cache_hit == 'true' && 'missing' || '' }}"
 | 
						|
        CODE_COVERAGE: "${{ inputs.code_coverage == 'true' && 'True' || 'False' }}"
 | 
						|
        STATIC_OPTION: "${{ inputs.static == 'true' && 'True' || 'False' }}"
 | 
						|
        INTEGRATION_TESTS_OPTION: "${{ inputs.build_integration_tests == 'true' && 'True' || 'False' }}"
 | 
						|
      run: |
 | 
						|
        cd build
 | 
						|
        conan install .. -of . -b $BUILD_OPTION -s build_type=${{ inputs.build_type }} -o clio:static="${STATIC_OPTION}" -o clio:tests=True -o clio:integration_tests="${INTEGRATION_TESTS_OPTION}" -o clio:lint=False -o clio:coverage="${CODE_COVERAGE}" --profile ${{ inputs.conan_profile }}
 | 
						|
 | 
						|
    - name: Run cmake
 | 
						|
      shell: bash
 | 
						|
      env:
 | 
						|
        BUILD_TYPE: "${{ inputs.build_type }}"
 | 
						|
        SANITIZER_OPTION: |
 | 
						|
          ${{ inputs.sanitizer == 'tsan' && '-Dsan=thread' ||
 | 
						|
              inputs.sanitizer == 'ubsan' && '-Dsan=undefined' ||
 | 
						|
              inputs.sanitizer == 'asan' && '-Dsan=address' ||
 | 
						|
              '' }}
 | 
						|
      run: |
 | 
						|
        cd build
 | 
						|
        cmake -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" ${SANITIZER_OPTION} .. -G Ninja
 |