Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
799a056
conan
dangell7 Feb 1, 2025
71884ad
sync
dangell7 Feb 1, 2025
2f6cf0a
[patch] remit transfer rate
dangell7 Feb 1, 2025
171610d
[release] add release build
dangell7 Feb 1, 2025
20ca066
[fold] update workflow
dangell7 Feb 2, 2025
56c0e0d
[fold] fix bad assert
dangell7 Feb 2, 2025
7162fe0
[fold] upgrade artifact@v4
dangell7 Feb 2, 2025
858ea1b
[fold] add external snappy
dangell7 Feb 2, 2025
7d8f5de
[fold] remove conan patch
dangell7 Feb 2, 2025
c27518b
[fold] use rippleci docker image
dangell7 Feb 2, 2025
bf33b6f
[fold] update conan
dangell7 Feb 2, 2025
fe43029
[fold] clang-format
dangell7 Feb 2, 2025
97a10d6
[fold] fix test
dangell7 Feb 4, 2025
b7acfb9
fix misc warnings
dangell7 Feb 4, 2025
cd45285
include optional
dangell7 Feb 4, 2025
4b93e16
fix macos github action
dangell7 Feb 4, 2025
26a66bc
fix misc warnings
dangell7 Feb 4, 2025
7c360ba
add optional include
dangell7 Feb 5, 2025
ee68cc2
clang-format
dangell7 Feb 5, 2025
9faef17
fix bad commit
dangell7 Feb 6, 2025
6858861
fix failing test
dangell7 Feb 7, 2025
680c609
Update macos.yml
dangell7 Feb 11, 2025
ecc7793
Merge branch 'dev' into tmp-conan
dangell7 Feb 11, 2025
802ea6c
[temp] remove negative rate test
dangell7 Feb 11, 2025
6fdf788
Merge branch 'dev' into tmp-conan
dangell7 Feb 28, 2025
da5f1d1
Merge branch 'dev' into tmp-conan
dangell7 Mar 5, 2025
5ef3795
[fix] release build issue
dangell7 Mar 6, 2025
0726789
update conan to 1.86
dangell7 Mar 21, 2025
b73dd58
Merge branch 'dev' into tmp-conan
dangell7 Mar 21, 2025
58e3840
remove `cxxflags` for macos action
dangell7 Mar 24, 2025
40dc69d
[GA] conan mac os build
dangell7 Mar 25, 2025
17fdd09
[GA] update conan profile
dangell7 Mar 25, 2025
9178aa9
[GA] remove unused workflows
dangell7 Mar 25, 2025
69b7728
[GA] tmp disable build cache
dangell7 Mar 25, 2025
9c26f1f
[GA] revert
dangell7 Mar 25, 2025
48919f0
[GA] Remove build caching
dangell7 Mar 25, 2025
689740d
Use GA runners with conan/ccache caches (#482)
sublimator Mar 28, 2025
864734f
Update xahau-sh-build-in-docker.yml
dangell7 Mar 28, 2025
245cf4a
refactor checkpatterns remove comments
dangell7 Mar 28, 2025
5eac2d3
change `on` fields
dangell7 Mar 28, 2025
ed24374
fix checkpatterns
dangell7 Mar 28, 2025
2d9ac91
fix build dir
dangell7 Mar 28, 2025
ddbbe91
attempt fix builder
dangell7 Mar 28, 2025
9a90a7f
optional release builder
dangell7 Mar 28, 2025
cab4d63
revert some cmake builds
dangell7 Mar 28, 2025
a8e9448
revert docker dependency cache
dangell7 Mar 29, 2025
859dcbc
remove `EXIT_IF_CONTAINER_RUNNING`
dangell7 Mar 29, 2025
313ad71
test workflow
dangell7 Mar 29, 2025
95ab35a
Update release-builder.sh
dangell7 Mar 29, 2025
f8d22bb
add caching
dangell7 Mar 29, 2025
c27e2a9
Update xahau-sh-build-in-docker.yml
dangell7 Mar 29, 2025
8b0592c
Update xahau-sh-build-in-docker.yml
dangell7 Mar 29, 2025
0bf50c5
eof
dangell7 Mar 30, 2025
9b7103e
rename workflow
dangell7 Apr 10, 2025
ab38e48
Merge branch 'dev' into tmp-conan
dangell7 Apr 10, 2025
7d6b2e7
remove info log from catalogue tests
dangell7 Apr 11, 2025
938feb3
Update release-builder.sh
dangell7 Apr 11, 2025
26cb84f
remove more kInfo
dangell7 Apr 11, 2025
df2e2ec
Merge branch 'dev' into tmp-conan
RichardAH Apr 16, 2025
658eb73
build: add interface library libxrpl: (#4449)
dangell7 Apr 16, 2025
8dc718a
fix conan
dangell7 Apr 17, 2025
c30b73d
Merge branch 'dev' into tmp-conan
dangell7 Apr 17, 2025
b87120e
update conan boost
dangell7 Apr 23, 2025
8ac2887
Merge branch 'dev' into tmp-conan
dangell7 Apr 23, 2025
857eefc
Merge branch 'dev' into tmp-conan
RichardAH Apr 29, 2025
e4478fa
revert build in docker changes
dangell7 Apr 30, 2025
dd5d580
[fold] bad merge
dangell7 Apr 30, 2025
34b3442
Merge branch 'dev' into tmp-conan
dangell7 Apr 30, 2025
9b47d06
Merge branch 'dev' into tmp-conan
RichardAH May 3, 2025
fdc2a0e
remove cosmetic changes
dangell7 May 8, 2025
5c5a390
nothing commit to force rebuild
RichardAH May 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/actions/xahau-configure-ccache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: 'Configure ccache'
description: 'Sets up ccache with consistent configuration'

inputs:
max_size:
description: 'Maximum cache size'
required: false
default: '2G'
hash_dir:
description: 'Whether to include directory paths in hash'
required: false
default: 'true'
compiler_check:
description: 'How to check compiler for changes'
required: false
default: 'content'

runs:
using: 'composite'
steps:
- name: Configure ccache
shell: bash
run: |
mkdir -p ~/.ccache
export CONF_PATH="${CCACHE_CONFIGPATH:-${CCACHE_DIR:-$HOME/.ccache}/ccache.conf}"
mkdir -p $(dirname "$CONF_PATH")
echo "max_size = ${{ inputs.max_size }}" > "$CONF_PATH"
echo "hash_dir = ${{ inputs.hash_dir }}" >> "$CONF_PATH"
echo "compiler_check = ${{ inputs.compiler_check }}" >> "$CONF_PATH"
ccache -p # Print config for verification
ccache -z # Zero statistics before the build
108 changes: 108 additions & 0 deletions .github/actions/xahau-ga-build/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: build
description: 'Builds the project with ccache integration'

inputs:
generator:
description: 'CMake generator to use'
required: true
configuration:
description: 'Build configuration (Debug, Release, etc.)'
required: true
build_dir:
description: 'Directory to build in'
required: false
default: '.build'
cc:
description: 'C compiler to use'
required: false
default: ''
cxx:
description: 'C++ compiler to use'
required: false
default: ''
compiler-id:
description: 'Unique identifier for compiler/version combination used for cache keys'
required: false
default: ''
cache_version:
description: 'Cache version for invalidation'
required: false
default: '1'
ccache_enabled:
description: 'Whether to use ccache'
required: false
default: 'true'
main_branch:
description: 'Main branch name for restore keys'
required: false
default: 'dev'

runs:
using: 'composite'
steps:
- name: Generate safe branch name
if: inputs.ccache_enabled == 'true'
id: safe-branch
shell: bash
run: |
SAFE_BRANCH=$(echo "${{ github.ref_name }}" | tr -c 'a-zA-Z0-9_.-' '-')
echo "name=${SAFE_BRANCH}" >> $GITHUB_OUTPUT

- name: Restore ccache directory
if: inputs.ccache_enabled == 'true'
id: ccache-restore
uses: actions/cache/restore@v4
with:
path: ~/.ccache
key: ${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.configuration }}-${{ steps.safe-branch.outputs.name }}
restore-keys: |
${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.configuration }}-${{ inputs.main_branch }}
${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.configuration }}-
${{ runner.os }}-ccache-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-
${{ runner.os }}-ccache-v${{ inputs.cache_version }}-

- name: Configure project
shell: bash
run: |
mkdir -p ${{ inputs.build_dir }}
cd ${{ inputs.build_dir }}

# Set compiler environment variables if provided
if [ -n "${{ inputs.cc }}" ]; then
export CC="${{ inputs.cc }}"
fi

if [ -n "${{ inputs.cxx }}" ]; then
export CXX="${{ inputs.cxx }}"
fi

# Configure ccache launcher args
CCACHE_ARGS=""
if [ "${{ inputs.ccache_enabled }}" = "true" ]; then
CCACHE_ARGS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
fi

# Run CMake configure
cmake .. \
-G "${{ inputs.generator }}" \
$CCACHE_ARGS \
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE=${{ inputs.configuration }}

- name: Build project
shell: bash
run: |
cd ${{ inputs.build_dir }}
cmake --build . --config ${{ inputs.configuration }} --parallel $(nproc)

- name: Show ccache statistics
if: inputs.ccache_enabled == 'true'
shell: bash
run: ccache -s

- name: Save ccache directory
if: inputs.ccache_enabled == 'true'
uses: actions/cache/save@v4
with:
path: ~/.ccache
key: ${{ steps.ccache-restore.outputs.cache-primary-key }}
86 changes: 86 additions & 0 deletions .github/actions/xahau-ga-dependencies/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: dependencies
description: 'Installs build dependencies with caching'

inputs:
configuration:
description: 'Build configuration (Debug, Release, etc.)'
required: true
build_dir:
description: 'Directory to build dependencies in'
required: false
default: '.build'
compiler-id:
description: 'Unique identifier for compiler/version combination used for cache keys'
required: false
default: ''
cache_version:
description: 'Cache version for invalidation'
required: false
default: '1'
cache_enabled:
description: 'Whether to use caching'
required: false
default: 'true'
main_branch:
description: 'Main branch name for restore keys'
required: false
default: 'dev'

outputs:
cache-hit:
description: 'Whether there was a cache hit'
value: ${{ steps.cache-restore-conan.outputs.cache-hit }}

runs:
using: 'composite'
steps:
- name: Generate safe branch name
if: inputs.cache_enabled == 'true'
id: safe-branch
shell: bash
run: |
SAFE_BRANCH=$(echo "${{ github.ref_name }}" | tr -c 'a-zA-Z0-9_.-' '-')
echo "name=${SAFE_BRANCH}" >> $GITHUB_OUTPUT

- name: Restore Conan cache
if: inputs.cache_enabled == 'true'
id: cache-restore-conan
uses: actions/cache/restore@v4
with:
path: |
~/.conan
~/.conan2
key: ${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-${{ inputs.configuration }}
restore-keys: |
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-
${{ runner.os }}-conan-v${{ inputs.cache_version }}-

- name: Export custom recipes
shell: bash
run: |
conan export external/snappy snappy/1.1.9@
conan export external/soci soci/4.0.3@

- name: Install dependencies
shell: bash
run: |
# Create build directory
mkdir -p ${{ inputs.build_dir }}
cd ${{ inputs.build_dir }}

# Install dependencies using conan
conan install \
--output-folder . \
--build missing \
--settings build_type=${{ inputs.configuration }} \
..

- name: Save Conan cache
if: inputs.cache_enabled == 'true' && steps.cache-restore-conan.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: |
~/.conan
~/.conan2
key: ${{ steps.cache-restore-conan.outputs.cache-primary-key }}
20 changes: 20 additions & 0 deletions .github/workflows/checkpatterns.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: checkpatterns

on: [push, pull_request]

jobs:
checkpatterns:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Check for suspicious patterns
run: |
if [ -f "suspicious_patterns.sh" ]; then
bash suspicious_patterns.sh
else
echo "Warning: suspicious_patterns.sh not found, skipping check"
# Still exit with success for compatibility with dependent jobs
exit 0
fi
25 changes: 0 additions & 25 deletions .github/workflows/doxygen.yml

This file was deleted.

116 changes: 116 additions & 0 deletions .github/workflows/xahau-ga-macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
name: MacOS - GA Runner

on:
push:
branches: ["dev", "candidate", "release"]
pull_request:
branches: ["dev", "candidate", "release"]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
strategy:
matrix:
generator:
- Ninja
configuration:
- Debug
runs-on: macos-15
env:
build_dir: .build
# Bump this number to invalidate all caches globally.
CACHE_VERSION: 1
MAIN_BRANCH_NAME: dev
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Conan
run: |
brew install conan@1
# Add Conan 1 to the PATH for this job
echo "$(brew --prefix conan@1)/bin" >> $GITHUB_PATH

- name: Install Coreutils
run: |
brew install coreutils
echo "Num proc: $(nproc)"

- name: Install Ninja
if: matrix.generator == 'Ninja'
run: brew install ninja

- name: Install Python
run: |
if which python3 > /dev/null 2>&1; then
echo "Python 3 executable exists"
python3 --version
else
brew install python@3.12
fi
# Create 'python' symlink if it doesn't exist (for tools expecting 'python')
if ! which python > /dev/null 2>&1; then
sudo ln -sf $(which python3) /usr/local/bin/python
fi

- name: Install CMake
run: |
if which cmake > /dev/null 2>&1; then
echo "cmake executable exists"
cmake --version
else
brew install cmake
fi

- name: Install ccache
run: brew install ccache

- name: Configure ccache
uses: ./.github/actions/xahau-configure-ccache
with:
max_size: 2G
hash_dir: true
compiler_check: content

- name: Check environment
run: |
echo "PATH:"
echo "${PATH}" | tr ':' '\n'
which python && python --version || echo "Python not found"
which conan && conan --version || echo "Conan not found"
which cmake && cmake --version || echo "CMake not found"
clang --version
ccache --version
echo "---- Full Environment ----"
env

- name: Configure Conan
run: |
conan profile new default --detect || true # Ignore error if profile exists
conan profile update settings.compiler.cppstd=20 default

- name: Install dependencies
uses: ./.github/actions/xahau-ga-dependencies
with:
configuration: ${{ matrix.configuration }}
build_dir: ${{ env.build_dir }}
compiler-id: clang
cache_version: ${{ env.CACHE_VERSION }}
main_branch: ${{ env.MAIN_BRANCH_NAME }}

- name: Build
uses: ./.github/actions/xahau-ga-build
with:
generator: ${{ matrix.generator }}
configuration: ${{ matrix.configuration }}
build_dir: ${{ env.build_dir }}
compiler-id: clang
cache_version: ${{ env.CACHE_VERSION }}
main_branch: ${{ env.MAIN_BRANCH_NAME }}

- name: Test
run: |
${{ env.build_dir }}/rippled --unittest --unittest-jobs $(nproc)
Loading
Loading