Change from Travis/CircleCi in favor of Github Actions#14
Open
yan-pi wants to merge 7 commits into
Open
Conversation
RocksDB 8 opens databases through DB** out parameters. Keep the raw pointer during Open/OpenForReadOnly and transfer ownership into the existing unique_ptr after a successful open. Co-authored-by: Isaque Franklin <isaque@harlock.xyz>
Make the C++17 requirement part of the exported target contract so native and Python extension builds inherit the same standard consistently.
Use a pinned RocksDB release compatible with BlockSci's existing C++17 DB** API instead of nixpkgs' newer RocksDB packages. Patch the common RocksDB namespace header with <cstdint> for newer GCC/libstdc++ include strictness.
Allow the unpackaged dependency script to build RocksDB 8.9.1 into the local prefix when BLOCKSCI_BUILD_ROCKSDB=1. Document the macOS path so native builds avoid Homebrew's newer RocksDB ABI/API expectations. Co-authored-by: Isaque Franklin <isaque@harlock.xyz>
Add PR checks for the Nix BTC path plus native Ubuntu and macOS arm64 builds. The native macOS path builds pinned RocksDB and passes explicit CMake package locations to the Python binding build.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2
Migrates the project CI from the legacy CircleCI/Travis setup to GitHub Actions.
This builds on @IsaqueFranklin native macOS work, which handled the main Apple Silicon compatibility path. I worked on top of that to make the build reproducible across GitHub-hosted Ubuntu, macOS arm64, and Nix.
What Changed
nix flake check8.9.1for Nix and native macOS compatibility.DB**API.Why
Newer RocksDB versions require newer C++ features and have API changes that do not match BlockSci’s current C++17 codebase. Pinning RocksDB gives us a stable build target without forcing a larger RocksDB modernization in this PR.
The Nix check is currently slow, around 50 minutes on GitHub Actions, because it does a cold build without a binary cache. This can be improved later with Cachix or another Nix binary cache.
Validation
nix flake check --no-buildpasses.