mirror of
				https://github.com/XRPLF/clio.git
				synced 2025-11-04 11:55:51 +00:00 
			
		
		
		
	Merge branch 'develop' into account_mpts
This commit is contained in:
		
							
								
								
									
										4
									
								
								.github/actions/build-clio/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/actions/build-clio/action.yml
									
									
									
									
										vendored
									
									
								
							@@ -21,9 +21,11 @@ runs:
 | 
			
		||||
 | 
			
		||||
    - name: Build targets
 | 
			
		||||
      shell: bash
 | 
			
		||||
      env:
 | 
			
		||||
        CMAKE_TARGETS: ${{ inputs.targets }}
 | 
			
		||||
      run: |
 | 
			
		||||
        cd build
 | 
			
		||||
        cmake \
 | 
			
		||||
          --build . \
 | 
			
		||||
          --parallel "${{ steps.number_of_threads.outputs.threads_number }}" \
 | 
			
		||||
          --target ${{ inputs.targets }}
 | 
			
		||||
          --target ${CMAKE_TARGETS}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/actions/code-coverage/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/actions/code-coverage/action.yml
									
									
									
									
										vendored
									
									
								
							@@ -24,7 +24,7 @@ runs:
 | 
			
		||||
          -j8 --exclude-throw-branches
 | 
			
		||||
 | 
			
		||||
    - name: Archive coverage report
 | 
			
		||||
      uses: actions/upload-artifact@v4
 | 
			
		||||
      uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
      with:
 | 
			
		||||
        name: coverage-report.xml
 | 
			
		||||
        path: build/coverage_report.xml
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								.github/actions/create-issue/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								.github/actions/create-issue/action.yml
									
									
									
									
										vendored
									
									
								
							@@ -28,12 +28,17 @@ runs:
 | 
			
		||||
    - name: Create an issue
 | 
			
		||||
      id: create_issue
 | 
			
		||||
      shell: bash
 | 
			
		||||
      env:
 | 
			
		||||
        ISSUE_BODY: ${{ inputs.body }}
 | 
			
		||||
        ISSUE_ASSIGNEES: ${{ inputs.assignees }}
 | 
			
		||||
        ISSUE_LABELS: ${{ inputs.labels }}
 | 
			
		||||
        ISSUE_TITLE: ${{ inputs.title }}
 | 
			
		||||
      run: |
 | 
			
		||||
        echo -e '${{ inputs.body }}' > issue.md
 | 
			
		||||
        echo -e "${ISSUE_BODY}" > issue.md
 | 
			
		||||
        gh issue create \
 | 
			
		||||
          --assignee '${{ inputs.assignees }}' \
 | 
			
		||||
          --label '${{ inputs.labels }}' \
 | 
			
		||||
          --title '${{ inputs.title }}' \
 | 
			
		||||
          --assignee "${ISSUE_ASSIGNEES}" \
 | 
			
		||||
          --label "${ISSUE_LABELS}" \
 | 
			
		||||
          --title "${ISSUE_TITLE}" \
 | 
			
		||||
          --body-file ./issue.md \
 | 
			
		||||
          > create_issue.log
 | 
			
		||||
        created_issue="$(sed 's|.*/||' create_issue.log)"
 | 
			
		||||
 
 | 
			
		||||
@@ -29,8 +29,10 @@ runs:
 | 
			
		||||
    - name: Shift and export number of threads
 | 
			
		||||
      id: number_of_threads_export
 | 
			
		||||
      shell: bash
 | 
			
		||||
      env:
 | 
			
		||||
        SUBTRACT_THREADS: ${{ inputs.subtract_threads }}
 | 
			
		||||
      run: |
 | 
			
		||||
        num_of_threads="${{ steps.mac_threads.outputs.num || steps.linux_threads.outputs.num }}"
 | 
			
		||||
        shift_by="${{ inputs.subtract_threads }}"
 | 
			
		||||
        shift_by="${SUBTRACT_THREADS}"
 | 
			
		||||
        shifted="$((num_of_threads - shift_by))"
 | 
			
		||||
        echo "num=$(( shifted > 1 ? shifted : 1 ))" >> $GITHUB_OUTPUT
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/actions/restore-cache/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/actions/restore-cache/action.yml
									
									
									
									
										vendored
									
									
								
							@@ -30,7 +30,7 @@ runs:
 | 
			
		||||
      uses: ./.github/actions/git-common-ancestor
 | 
			
		||||
 | 
			
		||||
    - name: Restore ccache cache
 | 
			
		||||
      uses: actions/cache/restore@v4
 | 
			
		||||
      uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
 | 
			
		||||
      id: ccache_cache
 | 
			
		||||
      if: ${{ env.CCACHE_DISABLE != '1' }}
 | 
			
		||||
      with:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/actions/save-cache/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/actions/save-cache/action.yml
									
									
									
									
										vendored
									
									
								
							@@ -32,7 +32,7 @@ runs:
 | 
			
		||||
 | 
			
		||||
    - name: Save ccache cache
 | 
			
		||||
      if: ${{ inputs.ccache_cache_hit != 'true' || inputs.ccache_cache_miss_rate == '100.0' }}
 | 
			
		||||
      uses: actions/cache/save@v4
 | 
			
		||||
      uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
 | 
			
		||||
      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 }}
 | 
			
		||||
 
 | 
			
		||||
@@ -31,15 +31,16 @@ TESTS=$($TEST_BINARY --gtest_list_tests | awk '/^  / {print suite $1} !/^  / {su
 | 
			
		||||
OUTPUT_DIR="./.sanitizer-report"
 | 
			
		||||
mkdir -p "$OUTPUT_DIR"
 | 
			
		||||
 | 
			
		||||
export TSAN_OPTIONS="die_after_fork=0"
 | 
			
		||||
export MallocNanoZone='0' # for MacOSX
 | 
			
		||||
 | 
			
		||||
for TEST in $TESTS; do
 | 
			
		||||
  OUTPUT_FILE="$OUTPUT_DIR/${TEST//\//_}"
 | 
			
		||||
  export TSAN_OPTIONS="log_path=\"$OUTPUT_FILE\" die_after_fork=0"
 | 
			
		||||
  export ASAN_OPTIONS="log_path=\"$OUTPUT_FILE\""
 | 
			
		||||
  export UBSAN_OPTIONS="log_path=\"$OUTPUT_FILE\""
 | 
			
		||||
  export MallocNanoZone='0' # for MacOSX
 | 
			
		||||
  $TEST_BINARY --gtest_filter="$TEST" > /dev/null 2>&1
 | 
			
		||||
  OUTPUT_FILE="$OUTPUT_DIR/${TEST//\//_}.log"
 | 
			
		||||
  $TEST_BINARY --gtest_filter="$TEST" > "$OUTPUT_FILE" 2>&1
 | 
			
		||||
 | 
			
		||||
  if [ $? -ne 0 ]; then
 | 
			
		||||
    echo "'$TEST' failed a sanitizer check."
 | 
			
		||||
  else
 | 
			
		||||
    rm "$OUTPUT_FILE"
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
							
								
								
									
										11
									
								
								.github/workflows/build-clio-docker-image.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								.github/workflows/build-clio-docker-image.yml
									
									
									
									
										vendored
									
									
								
							@@ -44,11 +44,11 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Download Clio binary from artifact
 | 
			
		||||
        if: ${{ inputs.artifact_name != null }}
 | 
			
		||||
        uses: actions/download-artifact@v5
 | 
			
		||||
        uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          name: ${{ inputs.artifact_name }}
 | 
			
		||||
          path: ./docker/clio/artifact/
 | 
			
		||||
@@ -56,9 +56,12 @@ jobs:
 | 
			
		||||
      - name: Download Clio binary from url
 | 
			
		||||
        if: ${{ inputs.clio_server_binary_url != null }}
 | 
			
		||||
        shell: bash
 | 
			
		||||
        env:
 | 
			
		||||
          BINARY_URL: ${{ inputs.clio_server_binary_url }}
 | 
			
		||||
          BINARY_SHA256: ${{ inputs.binary_sha256 }}
 | 
			
		||||
        run: |
 | 
			
		||||
          wget "${{inputs.clio_server_binary_url}}" -P ./docker/clio/artifact/
 | 
			
		||||
          if [ "$(sha256sum ./docker/clio/clio_server | awk '{print $1}')" != "${{inputs.binary_sha256}}" ]; then
 | 
			
		||||
          wget "${BINARY_URL}" -P ./docker/clio/artifact/
 | 
			
		||||
          if [ "$(sha256sum ./docker/clio/clio_server | awk '{print $1}')" != "${BINARY_SHA256}" ]; then
 | 
			
		||||
            echo "Binary sha256 sum doesn't match"
 | 
			
		||||
            exit 1
 | 
			
		||||
          fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							@@ -114,9 +114,9 @@ jobs:
 | 
			
		||||
      image: ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - uses: actions/download-artifact@v5
 | 
			
		||||
      - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_server_Linux_Release_gcc
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/check-libxrpl.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/check-libxrpl.yml
									
									
									
									
										vendored
									
									
								
							@@ -20,7 +20,7 @@ jobs:
 | 
			
		||||
      image: ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
@@ -57,7 +57,7 @@ jobs:
 | 
			
		||||
        run: strip build/clio_tests
 | 
			
		||||
 | 
			
		||||
      - name: Upload clio_tests
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_tests_check_libxrpl
 | 
			
		||||
          path: build/clio_tests
 | 
			
		||||
@@ -70,7 +70,7 @@ jobs:
 | 
			
		||||
      image: ghcr.io/xrplf/clio-ci:b2be4b51d1d81548ca48e2f2b8f67356b880c96d
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/download-artifact@v5
 | 
			
		||||
      - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_tests_check_libxrpl
 | 
			
		||||
 | 
			
		||||
@@ -90,7 +90,7 @@ jobs:
 | 
			
		||||
      issues: write
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Create an issue
 | 
			
		||||
        uses: ./.github/actions/create-issue
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/check-pr-title.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/check-pr-title.yml
									
									
									
									
										vendored
									
									
								
							@@ -10,15 +10,17 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: ytanikin/pr-conventional-commits@b72758283dcbee706975950e96bc4bf323a8d8c0 # v1.4.2
 | 
			
		||||
      - uses: ytanikin/pr-conventional-commits@b72758283dcbee706975950e96bc4bf323a8d8c0 # 1.4.2
 | 
			
		||||
        with:
 | 
			
		||||
          task_types: '["build","feat","fix","docs","test","ci","style","refactor","perf","chore"]'
 | 
			
		||||
          add_label: false
 | 
			
		||||
          custom_labels: '{"build":"build", "feat":"enhancement", "fix":"bug", "docs":"documentation", "test":"testability", "ci":"ci", "style":"refactoring", "refactor":"refactoring", "perf":"performance", "chore":"tooling"}'
 | 
			
		||||
 | 
			
		||||
      - name: Check if message starts with upper-case letter
 | 
			
		||||
        env:
 | 
			
		||||
          PR_TITLE: ${{ github.event.pull_request.title }}
 | 
			
		||||
        run: |
 | 
			
		||||
          if [[ ! "${{ github.event.pull_request.title }}" =~ ^[a-z]+:\ [\[A-Z] ]]; then
 | 
			
		||||
          if [[ ! "${PR_TITLE}" =~ ^[a-z]+:\ [\[A-Z] ]]; then
 | 
			
		||||
            echo "Error: PR title must start with an upper-case letter."
 | 
			
		||||
            exit 1
 | 
			
		||||
          fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/clang-tidy.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/clang-tidy.yml
									
									
									
									
										vendored
									
									
								
							@@ -35,7 +35,7 @@ jobs:
 | 
			
		||||
      pull-requests: write
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/docs.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/docs.yml
									
									
									
									
										vendored
									
									
								
							@@ -18,7 +18,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
        uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
        with:
 | 
			
		||||
          lfs: true
 | 
			
		||||
 | 
			
		||||
@@ -39,10 +39,10 @@ jobs:
 | 
			
		||||
        run: cmake --build . --target docs
 | 
			
		||||
 | 
			
		||||
      - name: Setup Pages
 | 
			
		||||
        uses: actions/configure-pages@v5
 | 
			
		||||
        uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
 | 
			
		||||
 | 
			
		||||
      - name: Upload artifact
 | 
			
		||||
        uses: actions/upload-pages-artifact@v4
 | 
			
		||||
        uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          path: build_docs/html
 | 
			
		||||
          name: docs-develop
 | 
			
		||||
@@ -62,6 +62,6 @@ jobs:
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Deploy to GitHub Pages
 | 
			
		||||
        id: deployment
 | 
			
		||||
        uses: actions/deploy-pages@v4
 | 
			
		||||
        uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
 | 
			
		||||
        with:
 | 
			
		||||
          artifact_name: docs-develop
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							@@ -130,7 +130,7 @@ jobs:
 | 
			
		||||
      issues: write
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Create an issue
 | 
			
		||||
        uses: ./.github/actions/create-issue
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								.github/workflows/reusable-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/workflows/reusable-build.yml
									
									
									
									
										vendored
									
									
								
							@@ -86,7 +86,7 @@ jobs:
 | 
			
		||||
        if: ${{ runner.os == 'macOS' }}
 | 
			
		||||
        uses: XRPLF/actions/.github/actions/cleanup-workspace@ea9970b7c211b18f4c8bcdb28c29f5711752029f
 | 
			
		||||
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
          # We need to fetch tags to have correct version in the release
 | 
			
		||||
@@ -145,7 +145,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Upload build time analyze report
 | 
			
		||||
        if: ${{ inputs.analyze_build_time }}
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: build_time_report_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
          path: build_time_report.txt
 | 
			
		||||
@@ -170,28 +170,28 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Upload clio_server
 | 
			
		||||
        if: ${{ inputs.upload_clio_server && !inputs.code_coverage && !inputs.analyze_build_time }}
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_server_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
          path: build/clio_server
 | 
			
		||||
 | 
			
		||||
      - name: Upload clio_tests
 | 
			
		||||
        if: ${{ !inputs.code_coverage && !inputs.analyze_build_time && !inputs.package }}
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_tests_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
          path: build/clio_tests
 | 
			
		||||
 | 
			
		||||
      - name: Upload clio_integration_tests
 | 
			
		||||
        if: ${{ !inputs.code_coverage && !inputs.analyze_build_time && !inputs.package }}
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_integration_tests_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
          path: build/clio_integration_tests
 | 
			
		||||
 | 
			
		||||
      - name: Upload Clio Linux package
 | 
			
		||||
        if: ${{ inputs.package }}
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_deb_package_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
          path: build/*.deb
 | 
			
		||||
@@ -221,12 +221,14 @@ jobs:
 | 
			
		||||
      - name: Verify expected version
 | 
			
		||||
        if: ${{ inputs.expected_version != '' }}
 | 
			
		||||
        shell: bash
 | 
			
		||||
        env:
 | 
			
		||||
          INPUT_EXPECTED_VERSION: ${{ inputs.expected_version }}
 | 
			
		||||
        run: |
 | 
			
		||||
          set -e
 | 
			
		||||
          EXPECTED_VERSION="clio-${{ inputs.expected_version }}"
 | 
			
		||||
          EXPECTED_VERSION="clio-${INPUT_EXPECTED_VERSION}"
 | 
			
		||||
          actual_version=$(./build/clio_server --version)
 | 
			
		||||
          if [[ "$actual_version" != "$EXPECTED_VERSION" ]]; then
 | 
			
		||||
            echo "Expected version '$EXPECTED_VERSION', but got '$actual_version'"
 | 
			
		||||
            echo "Expected version '${EXPECTED_VERSION}', but got '${actual_version}'"
 | 
			
		||||
            exit 1
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								.github/workflows/reusable-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								.github/workflows/reusable-release.yml
									
									
									
									
										vendored
									
									
								
							@@ -51,7 +51,7 @@ jobs:
 | 
			
		||||
      contents: write
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
@@ -60,17 +60,19 @@ jobs:
 | 
			
		||||
        with:
 | 
			
		||||
          disable_ccache: true
 | 
			
		||||
 | 
			
		||||
      - uses: actions/download-artifact@v5
 | 
			
		||||
      - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          path: release_artifacts
 | 
			
		||||
          pattern: clio_server_*
 | 
			
		||||
 | 
			
		||||
      - name: Create release notes
 | 
			
		||||
        shell: bash
 | 
			
		||||
        env:
 | 
			
		||||
          RELEASE_HEADER: ${{ inputs.header }}
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "# Release notes" > "${RUNNER_TEMP}/release_notes.md"
 | 
			
		||||
          echo "" >> "${RUNNER_TEMP}/release_notes.md"
 | 
			
		||||
          printf '%s\n' "${{ inputs.header }}" >> "${RUNNER_TEMP}/release_notes.md"
 | 
			
		||||
          printf '%s\n' "${RELEASE_HEADER}" >> "${RUNNER_TEMP}/release_notes.md"
 | 
			
		||||
 | 
			
		||||
      - name: Generate changelog
 | 
			
		||||
        shell: bash
 | 
			
		||||
@@ -87,7 +89,7 @@ jobs:
 | 
			
		||||
        run: .github/scripts/prepare-release-artifacts.sh release_artifacts
 | 
			
		||||
 | 
			
		||||
      - name: Upload release notes
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: release_notes_${{ inputs.version }}
 | 
			
		||||
          path: "${RUNNER_TEMP}/release_notes.md"
 | 
			
		||||
@@ -95,18 +97,25 @@ jobs:
 | 
			
		||||
      - name: Remove current release and tag
 | 
			
		||||
        if: ${{ github.event_name != 'pull_request' && inputs.overwrite_release }}
 | 
			
		||||
        shell: bash
 | 
			
		||||
        env:
 | 
			
		||||
          RELEASE_VERSION: ${{ inputs.version }}
 | 
			
		||||
        run: |
 | 
			
		||||
          gh release delete ${{ inputs.version }} --yes || true
 | 
			
		||||
          git push origin :${{ inputs.version }} || true
 | 
			
		||||
          gh release delete "${RELEASE_VERSION}" --yes || true
 | 
			
		||||
          git push origin :"${RELEASE_VERSION}" || true
 | 
			
		||||
 | 
			
		||||
      - name: Publish release
 | 
			
		||||
        if: ${{ github.event_name != 'pull_request' }}
 | 
			
		||||
        shell: bash
 | 
			
		||||
        env:
 | 
			
		||||
          RELEASE_VERSION: ${{ inputs.version }}
 | 
			
		||||
          PRERELEASE_OPTION: ${{ inputs.prerelease && '--prerelease' || '' }}
 | 
			
		||||
          RELEASE_TITLE: ${{ inputs.title }}
 | 
			
		||||
          DRAFT_OPTION: ${{ inputs.draft && '--draft' || '' }}
 | 
			
		||||
        run: |
 | 
			
		||||
          gh release create "${{ inputs.version }}" \
 | 
			
		||||
            ${{ inputs.prerelease && '--prerelease' || '' }} \
 | 
			
		||||
            --title "${{ inputs.title }}" \
 | 
			
		||||
          gh release create "${RELEASE_VERSION}" \
 | 
			
		||||
            ${PRERELEASE_OPTION} \
 | 
			
		||||
            --title "${RELEASE_TITLE}" \
 | 
			
		||||
            --target "${GITHUB_SHA}" \
 | 
			
		||||
            ${{ inputs.draft && '--draft' || '' }} \
 | 
			
		||||
            ${DRAFT_OPTION} \
 | 
			
		||||
            --notes-file "${RUNNER_TEMP}/release_notes.md" \
 | 
			
		||||
            ./release_artifacts/clio_server*
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								.github/workflows/reusable-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/reusable-test.yml
									
									
									
									
										vendored
									
									
								
							@@ -50,11 +50,11 @@ jobs:
 | 
			
		||||
        if: ${{ runner.os == 'macOS' }}
 | 
			
		||||
        uses: XRPLF/actions/.github/actions/cleanup-workspace@ea9970b7c211b18f4c8bcdb28c29f5711752029f
 | 
			
		||||
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
      - uses: actions/download-artifact@v5
 | 
			
		||||
      - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_tests_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
 | 
			
		||||
@@ -68,7 +68,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Run clio_tests (sanitizer errors ignored)
 | 
			
		||||
        if: ${{ env.SANITIZER_IGNORE_ERRORS == 'true' }}
 | 
			
		||||
        run: ./.github/scripts/execute-tests-under-sanitizer ./clio_tests
 | 
			
		||||
        run: ./.github/scripts/execute-tests-under-sanitizer.sh ./clio_tests
 | 
			
		||||
 | 
			
		||||
      - name: Check for sanitizer report
 | 
			
		||||
        if: ${{ env.SANITIZER_IGNORE_ERRORS == 'true' }}
 | 
			
		||||
@@ -83,7 +83,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Upload sanitizer report
 | 
			
		||||
        if: ${{ env.SANITIZER_IGNORE_ERRORS == 'true' && steps.check_report.outputs.found_report == 'true' }}
 | 
			
		||||
        uses: actions/upload-artifact@v4
 | 
			
		||||
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
 | 
			
		||||
        with:
 | 
			
		||||
          name: sanitizer_report_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
          path: .sanitizer-report/*
 | 
			
		||||
@@ -144,7 +144,7 @@ jobs:
 | 
			
		||||
            sleep 5
 | 
			
		||||
          done
 | 
			
		||||
 | 
			
		||||
      - uses: actions/download-artifact@v5
 | 
			
		||||
      - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          name: clio_integration_tests_${{ runner.os }}_${{ inputs.build_type }}_${{ inputs.conan_profile }}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,12 +12,12 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
      - name: Download report artifact
 | 
			
		||||
        uses: actions/download-artifact@v5
 | 
			
		||||
        uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
 | 
			
		||||
        with:
 | 
			
		||||
          name: coverage-report.xml
 | 
			
		||||
          path: build
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								.github/workflows/sanitizers.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/sanitizers.yml
									
									
									
									
										vendored
									
									
								
							@@ -15,7 +15,7 @@ on:
 | 
			
		||||
      - ".github/actions/**"
 | 
			
		||||
      - "!.github/actions/build-docker-image/**"
 | 
			
		||||
      - "!.github/actions/create-issue/**"
 | 
			
		||||
      - .github/scripts/execute-tests-under-sanitizer
 | 
			
		||||
      - .github/scripts/execute-tests-under-sanitizer.sh
 | 
			
		||||
 | 
			
		||||
      - CMakeLists.txt
 | 
			
		||||
      - conanfile.py
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								.github/workflows/update-docker-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.github/workflows/update-docker-ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -52,7 +52,7 @@ jobs:
 | 
			
		||||
    needs: repo
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
@@ -90,7 +90,7 @@ jobs:
 | 
			
		||||
    needs: repo
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
@@ -128,7 +128,7 @@ jobs:
 | 
			
		||||
    needs: [repo, gcc-amd64, gcc-arm64]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
@@ -137,7 +137,7 @@ jobs:
 | 
			
		||||
          files: "docker/compilers/gcc/**"
 | 
			
		||||
 | 
			
		||||
      - name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
        uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
 | 
			
		||||
 | 
			
		||||
      - name: Login to GitHub Container Registry
 | 
			
		||||
        if: ${{ github.event_name != 'pull_request' }}
 | 
			
		||||
@@ -179,7 +179,7 @@ jobs:
 | 
			
		||||
    needs: repo
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
@@ -215,7 +215,7 @@ jobs:
 | 
			
		||||
    needs: [repo, gcc-merge]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
@@ -246,7 +246,7 @@ jobs:
 | 
			
		||||
    needs: [repo, gcc-merge]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
@@ -277,7 +277,7 @@ jobs:
 | 
			
		||||
    needs: [repo, tools-amd64, tools-arm64]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Get changed files
 | 
			
		||||
        id: changed-files
 | 
			
		||||
@@ -286,7 +286,7 @@ jobs:
 | 
			
		||||
          files: "docker/tools/**"
 | 
			
		||||
 | 
			
		||||
      - name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v3
 | 
			
		||||
        uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
 | 
			
		||||
 | 
			
		||||
      - name: Login to GitHub Container Registry
 | 
			
		||||
        if: ${{ github.event_name != 'pull_request' }}
 | 
			
		||||
@@ -312,7 +312,7 @@ jobs:
 | 
			
		||||
    needs: [repo, tools-merge]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
      - uses: ./.github/actions/build-docker-image
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
@@ -334,7 +334,7 @@ jobs:
 | 
			
		||||
    needs: [repo, gcc-merge, clang, tools-merge]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
      - uses: ./.github/actions/build-docker-image
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								.github/workflows/upload-conan-deps.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/upload-conan-deps.yml
									
									
									
									
										vendored
									
									
								
							@@ -46,7 +46,7 @@ jobs:
 | 
			
		||||
    outputs:
 | 
			
		||||
      matrix: ${{ steps.set-matrix.outputs.matrix }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Calculate conan matrix
 | 
			
		||||
        id: set-matrix
 | 
			
		||||
@@ -69,7 +69,7 @@ jobs:
 | 
			
		||||
      CONAN_PROFILE: ${{ matrix.compiler }}${{ matrix.sanitizer_ext }}
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
 | 
			
		||||
 | 
			
		||||
      - name: Prepare runner
 | 
			
		||||
        uses: XRPLF/actions/.github/actions/prepare-runner@7951b682e5a2973b28b0719a72f01fc4b0d0c34f
 | 
			
		||||
@@ -99,4 +99,6 @@ jobs:
 | 
			
		||||
 | 
			
		||||
      - name: Upload Conan packages
 | 
			
		||||
        if: ${{ github.repository_owner == 'XRPLF' && github.event_name != 'pull_request' && github.event_name != 'schedule' }}
 | 
			
		||||
        run: conan upload "*" -r=xrplf --confirm ${{ github.event.inputs.force_upload == 'true' && '--force' || '' }}
 | 
			
		||||
        env:
 | 
			
		||||
          FORCE_OPTION: ${{ github.event.inputs.force_upload == 'true' && '--force' || '' }}
 | 
			
		||||
        run: conan upload "*" -r=xrplf --confirm ${FORCE_OPTION}
 | 
			
		||||
 
 | 
			
		||||
@@ -34,7 +34,6 @@ Below are some useful docs to learn more about Clio.
 | 
			
		||||
 | 
			
		||||
- [How to configure Clio and rippled](./docs/configure-clio.md)
 | 
			
		||||
- [How to run Clio](./docs/run-clio.md)
 | 
			
		||||
- [Logging](./docs/logging.md)
 | 
			
		||||
- [Troubleshooting guide](./docs/trouble_shooting.md)
 | 
			
		||||
 | 
			
		||||
**General reference material:**
 | 
			
		||||
 
 | 
			
		||||
@@ -374,10 +374,12 @@ TEST_F(GrpcSourceNgTests, DeadlineIsHandledCorrectly)
 | 
			
		||||
    auto grpcSource =
 | 
			
		||||
        std::make_unique<etlng::impl::GrpcSource>("localhost", std::to_string(getXRPLMockPort()), kDEADLINE);
 | 
			
		||||
 | 
			
		||||
    // Note: this may not be called at all if gRPC cancels before it gets a chance to call the stub
 | 
			
		||||
    EXPECT_CALL(mockXrpLedgerAPIService, GetLedger)
 | 
			
		||||
        .WillOnce([&](grpc::ServerContext*,
 | 
			
		||||
                      org::xrpl::rpc::v1::GetLedgerRequest const*,
 | 
			
		||||
                      org::xrpl::rpc::v1::GetLedgerResponse*) {
 | 
			
		||||
        .Times(testing::AtMost(1))
 | 
			
		||||
        .WillRepeatedly([&](grpc::ServerContext*,
 | 
			
		||||
                            org::xrpl::rpc::v1::GetLedgerRequest const*,
 | 
			
		||||
                            org::xrpl::rpc::v1::GetLedgerResponse*) {
 | 
			
		||||
            // wait for main thread to discard us and fail the test if unsuccessful within expected timeframe
 | 
			
		||||
            [&] { ASSERT_TRUE(sem.try_acquire_for(std::chrono::milliseconds{50})); }();
 | 
			
		||||
            return grpc::Status{};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user