mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
This change updates RocksDB to its latest version. RocksDB is backward-compatible, so even though this is a major version bump, databases created with previous versions will continue to function. The external RocksDB folder is removed, as the latest version available via Conan Center no longer needs custom patches.
122 lines
4.2 KiB
YAML
122 lines
4.2 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
|
|
# This part of Conan configuration is specific to this workflow only; we do not want
|
|
# to pollute conan/profiles directory with settings which might not work for others
|
|
env:
|
|
CONAN_URL: http://18.143.149.228:8081/artifactory/api/conan/dev
|
|
CONAN_LOGIN_USERNAME_RIPPLE: ${{ secrets.CONAN_USERNAME }}
|
|
CONAN_PASSWORD_RIPPLE: ${{ secrets.CONAN_TOKEN }}
|
|
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: export custom recipes
|
|
shell: bash
|
|
run: |
|
|
conan export --version 1.1.10 external/snappy
|
|
conan export --version 4.0.3 external/soci
|
|
- name: add Ripple Conan remote
|
|
if: env.CONAN_URL != ''
|
|
shell: bash
|
|
run: |
|
|
if conan remote list | grep -q "ripple"; then
|
|
conan remote remove ripple
|
|
echo "Removed conan remote ripple"
|
|
fi
|
|
conan remote add --index 0 ripple "${CONAN_URL}"
|
|
echo "Added conan remote ripple at ${CONAN_URL}"
|
|
- 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
|