mirror of
				https://github.com/XRPLF/rippled.git
				synced 2025-11-04 11:15:56 +00:00 
			
		
		
		
	This change moves some tests from the current unit tests that are compiled into the rippled binary to using the doctest framework.
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: windows
 | 
						|
 | 
						|
on:
 | 
						|
  pull_request:
 | 
						|
    types: [opened, reopened, synchronize, ready_for_review]
 | 
						|
  push:
 | 
						|
    # If the branches list is ever changed, be sure to change it on all
 | 
						|
    # build/test jobs (nix, macos, windows, instrumentation)
 | 
						|
    branches:
 | 
						|
      # Always build the package branches
 | 
						|
      - develop
 | 
						|
      - release
 | 
						|
      - master
 | 
						|
      # Branches that opt-in to running
 | 
						|
      - 'ci/**'
 | 
						|
 | 
						|
# https://docs.github.com/en/actions/using-jobs/using-concurrency
 | 
						|
concurrency:
 | 
						|
  group: ${{ github.workflow }}-${{ github.ref }}
 | 
						|
  cancel-in-progress: true
 | 
						|
 | 
						|
jobs:
 | 
						|
 | 
						|
  test:
 | 
						|
    if: ${{ github.event_name == 'push' || github.event.pull_request.draft != true || contains(github.event.pull_request.labels.*.name, 'DraftRunCI') }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        version:
 | 
						|
          - generator: Visual Studio 17 2022
 | 
						|
            runs-on: windows-2022
 | 
						|
        configuration:
 | 
						|
          - type: Release
 | 
						|
            tests: true
 | 
						|
          - type: Debug
 | 
						|
            # Skip running unit tests on debug builds, because they
 | 
						|
            # take an unreasonable amount of time
 | 
						|
            tests: false
 | 
						|
            runtime: d
 | 
						|
    runs-on: ${{ matrix.version.runs-on }}
 | 
						|
    env:
 | 
						|
      build_dir: .build
 | 
						|
    steps:
 | 
						|
      - name: checkout
 | 
						|
        uses: actions/checkout@v4
 | 
						|
      - name: choose Python
 | 
						|
        uses: actions/setup-python@v5
 | 
						|
        with:
 | 
						|
          python-version: 3.9
 | 
						|
      - name: learn Python cache directory
 | 
						|
        id: pip-cache
 | 
						|
        shell: bash
 | 
						|
        run: |
 | 
						|
          python -m pip install --upgrade pip
 | 
						|
          echo "dir=$(pip cache dir)" | tee ${GITHUB_OUTPUT}
 | 
						|
      - name: restore Python cache directory
 | 
						|
        uses: actions/cache@v4
 | 
						|
        with:
 | 
						|
            path: ${{ steps.pip-cache.outputs.dir }}
 | 
						|
            key: ${{ runner.os }}-${{ hashFiles('.github/workflows/windows.yml') }}
 | 
						|
      - name: install Conan
 | 
						|
        run: pip install wheel 'conan<2'
 | 
						|
      - name: check environment
 | 
						|
        run: |
 | 
						|
          dir env:
 | 
						|
          $env:PATH -split ';'
 | 
						|
          python --version
 | 
						|
          conan --version
 | 
						|
          cmake --version
 | 
						|
      - name: configure Conan
 | 
						|
        shell: bash
 | 
						|
        run: |
 | 
						|
          conan profile new default --detect
 | 
						|
          conan profile update settings.compiler.cppstd=20 default
 | 
						|
          conan profile update \
 | 
						|
            settings.compiler.runtime=MT${{ matrix.configuration.runtime }} \
 | 
						|
            default
 | 
						|
      - name: build dependencies
 | 
						|
        uses: ./.github/actions/dependencies
 | 
						|
        env:
 | 
						|
          CONAN_URL: http://18.143.149.228:8081/artifactory/api/conan/conan-non-prod
 | 
						|
          CONAN_LOGIN_USERNAME_RIPPLE: ${{ secrets.CONAN_USERNAME }}
 | 
						|
          CONAN_PASSWORD_RIPPLE: ${{ secrets.CONAN_TOKEN }}
 | 
						|
        with:
 | 
						|
          configuration: ${{ matrix.configuration.type }}
 | 
						|
      - name: build
 | 
						|
        uses: ./.github/actions/build
 | 
						|
        with:
 | 
						|
          generator: '${{ matrix.version.generator }}'
 | 
						|
          configuration: ${{ matrix.configuration.type }}
 | 
						|
          # Hard code for now. Move to the matrix if varied options are needed
 | 
						|
          cmake-args: '-Dassert=TRUE -Dwerr=TRUE -Dreporting=OFF -Dunity=ON'
 | 
						|
          cmake-target: install
 | 
						|
      - name: test
 | 
						|
        shell: bash
 | 
						|
        if: ${{ matrix.configuration.tests }}
 | 
						|
        run: |
 | 
						|
          cd ${build_dir}/${{ matrix.configuration.type }}
 | 
						|
          ./rippled --unittest --unittest-jobs $(nproc)
 | 
						|
          ctest -j $(nproc) --output-on-failure
 |