mirror of
				https://github.com/XRPLF/rippled.git
				synced 2025-11-04 11:15:56 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.7 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
 | 
						|
env:
 | 
						|
  CONAN_REMOTE_URL: https://conan.ripplex.io
 | 
						|
  CONAN_REMOTE_USERNAME: ${{ secrets.CONAN_REMOTE_USERNAME }}
 | 
						|
  CONAN_REMOTE_PASSWORD: ${{ secrets.CONAN_REMOTE_PASSWORD }}
 | 
						|
  # This part of the Conan configuration is specific to this workflow only; we
 | 
						|
  # do not want to pollute the 'conan/profiles' directory with settings that
 | 
						|
  # might not work for other workflows.
 | 
						|
  CONAN_GLOBAL_CONF: |
 | 
						|
    core.download:parallel={{os.cpu_count()}}
 | 
						|
    core.upload:parallel={{os.cpu_count()}}
 | 
						|
    tools.build:jobs=24
 | 
						|
    tools.build:verbosity=verbose
 | 
						|
    tools.compilation:verbosity=verbose
 | 
						|
 | 
						|
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@11bd71901bbe5b1630ceea73d27597364c9af683
 | 
						|
      - name: choose Python
 | 
						|
        uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
 | 
						|
        with:
 | 
						|
          python-version: 3.13
 | 
						|
      - 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@5a3ec84eff668545956fd18022155c47e93e2684
 | 
						|
        with:
 | 
						|
          path: ${{ steps.pip-cache.outputs.dir }}
 | 
						|
          key: ${{ runner.os }}-${{ hashFiles('.github/workflows/windows.yml') }}
 | 
						|
      - name: install Conan
 | 
						|
        run: pip install wheel conan
 | 
						|
      - name: check environment
 | 
						|
        run: |
 | 
						|
          dir env:
 | 
						|
          $env:PATH -split ';'
 | 
						|
          python --version
 | 
						|
          conan --version
 | 
						|
          cmake --version
 | 
						|
      - name: configure Conan
 | 
						|
        shell: bash
 | 
						|
        run: |
 | 
						|
          echo "${CONAN_GLOBAL_CONF}" > $(conan config home)/global.conf
 | 
						|
          conan config install conan/profiles/ -tf $(conan config home)/profiles/
 | 
						|
          conan profile show
 | 
						|
      - name: build dependencies
 | 
						|
        uses: ./.github/actions/dependencies
 | 
						|
        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
 |