-
Notifications
You must be signed in to change notification settings - Fork 8
ci: Overhaul CI #253
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: v0.41-dev
Are you sure you want to change the base?
ci: Overhaul CI #253
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This is a general CI overhaul which will not pass yet but i will work on getting there while this stays a draft. ### Summary - Add `cargo-deny` security audit for vulnerability and license checking - Add MSRV (1.89) verification job - Add documentation build check - Add Windows to tests and pre-commit - Rewrite test workflow with grouped multi-platform matrix (Linux x86/ARM, macOS, Windows) - Add `verify-coverage` job that fails if any crate isn't assigned to a test group - Drop the complex segfault detection logic in the SPV part which was actually hiding test failures - Add x86_64 runner to fuzz workflow alongside ARM for cross-architecture coverage - Add enable concurrency control in `pre-commit.yml` to cancel redundant runs ### Test Groups Tests are now organized in `.github/ci-groups.yml`. CI fails if a new crate is added without being assigned to a group. ### Jobs: 4 → ~25 (parallel) - 20 test jobs (5 groups (core, spv, wallet, rpc, tools) × 4 platforms (ubuntu arm, ubuntu x86_64, macos, windows)) - security, msrv, docs build, verify-coverage
1364c77 to
faa4b34
Compare
Using `BlockHash::hash(&[0])` causes heap buffer overflow in sanitizer step in the CI overhaul #253 because it tries to X11 hash a 1 byte input.
Use underscore instead of colon or dots since they are not allowed in filenames in Windows. This is are some of the fixes required for Windows support which gets introduced/tested in the CI overhaul PR #253.
Use underscore instead of colon or dots since they are not allowed in filenames in Windows. This is are some of the fixes required for Windows support which gets introduced/tested in the CI overhaul PR #253.
Uses fully qualified syntax `<T as $crate::Hash>::method()` instead of relying on the `Hash` trait being in scope. This ensures `hash_newtype!` macros compile correctly when used with `--no-default-features` in CI overhaul PR #253.
Adds `license = "CC0-1.0"` to `fuzz/Cargo.toml` and `rpc-integration-test/Cargo.toml` to pass cargo-deny license checks added in the CI overhaul PR #253.
Use underscore instead of colon or dots since they are not allowed in filenames in Windows. This is are some of the fixes required for Windows support which gets introduced/tested in the CI overhaul PR dashpay#253.
Uses fully qualified syntax `<T as $crate::Hash>::method()` instead of relying on the `Hash` trait being in scope. This ensures `hash_newtype!` macros compile correctly when used with `--no-default-features` in CI overhaul PR dashpay#253.
Adds `license = "CC0-1.0"` to `fuzz/Cargo.toml` and `rpc-integration-test/Cargo.toml` to pass cargo-deny license checks added in the CI overhaul PR dashpay#253.
Fixes an issue encountered in the CI overhaul PR dashpay#253. Open lock file with read+write access and add test-only `read_pid` function that reads from the same file handle. This works on Windows where exclusive locks prevent reading through another file handle: ``` thread 'storage::lockfile::tests::test_lock_file_contains_pid' (8952) panicked at dash-spv\src\storage\lockfile.rs:72:59: Should read lock file: Os { code: 33, kind: Uncategorized, message: "The process cannot access the file because another process has locked a portion of the file." } ```
commit bf6389a Author: xdustinface <xdustinfacex@gmail.com> Date: Sat Dec 27 11:38:02 2025 +0100 fix: add license field to fuzz Cargo.toml template commit c6f8398 Author: xdustinface <xdustinfacex@gmail.com> Date: Fri Dec 12 11:52:08 2025 +1100 fix: add missing license fields for cargo-deny audit Adds `license = "CC0-1.0"` to `fuzz/Cargo.toml` and `rpc-integration-test/Cargo.toml` to pass cargo-deny license checks added in the CI overhaul PR dashpay#253.
Fixes an issue encountered in the CI overhaul PR dashpay#253. Open lock file with read+write access and add test-only `read_pid` function that reads from the same file handle. This works on Windows where exclusive locks prevent reading through another file handle: ``` thread 'storage::lockfile::tests::test_lock_file_contains_pid' (8952) panicked at dash-spv\src\storage\lockfile.rs:72:59: Should read lock file: Os { code: 33, kind: Uncategorized, message: "The process cannot access the file because another process has locked a portion of the file." } ```
Fixes an issue encountered in the CI overhaul PR #253. Open lock file with read+write access and add test-only `read_pid` function that reads from the same file handle. This works on Windows where exclusive locks prevent reading through another file handle: ``` thread 'storage::lockfile::tests::test_lock_file_contains_pid' (8952) panicked at dash-spv\src\storage\lockfile.rs:72:59: Should read lock file: Os { code: 33, kind: Uncategorized, message: "The process cannot access the file because another process has locked a portion of the file." } ```
Fixes an issue encountered in the CI overhaul PR dashpay#253. Open lock file with read+write access and add test-only `read_pid` function that reads from the same file handle. This works on Windows where exclusive locks prevent reading through another file handle: ``` thread 'storage::lockfile::tests::test_lock_file_contains_pid' (8952) panicked at dash-spv\src\storage\lockfile.rs:72:59: Should read lock file: Os { code: 33, kind: Uncategorized, message: "The process cannot access the file because another process has locked a portion of the file." } ```
Fixes an issue encountered in Windows support in CI overhaul PR dashpay#253.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
Fixes an issue encountered in Windows support in CI overhaul PR dashpay#253.
Uses one file handle for create/write/sync instead of separate write then reopen for sync, it just makes sense and it also avoids a race condition on Windows where the file may still be held briefly after closing which leads to test failures in the CI overhaul PR #253.
Uses one file handle for create/write/sync instead of separate write then reopen for sync, it just makes sense and it also avoids a race condition on Windows where the file may still be held briefly after closing which leads to test failures in the CI overhaul PR #253.
Uses one file handle for create/write/sync instead of separate write then reopen for sync, it just makes sense and it also avoids a race condition on Windows where the file may still be held briefly after closing which leads to test failures in the CI overhaul PR #253.
Fix a bug in Windows discovered in CI overhaul PR dashpay#253 where `:9999` was being accepted as a valid peer address on Windows due to DNS resolution differences.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
Fix a bug in Windows discovered in CI overhaul PR dashpay#253 where `:9999` was being accepted as a valid peer address on Windows due to DNS resolution differences.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
Bumps `rs-x11-hash` to `0.1.9` which now supports windows build. This is one part of the puzzle for the Windows support in the CI overhaul PR #253.
Bumps `rs-x11-hash` to `0.1.9` which now supports windows build. This is one part of the puzzle for the Windows support in the CI overhaul PR #253.
`honggfuzz` doesn't support Windows, causing the `pre-commit` clippy step in #253 to fail. This excludes `dash-fuzz` from clippy on Windows only.
Bumps `rs-x11-hash` to `0.1.9` which now supports windows build. This is one part of the puzzle for the Windows support in the CI overhaul PR dashpay#253.
`honggfuzz` doesn't support Windows, causing the `pre-commit` clippy step in dashpay#253 to fail. This excludes `dash-fuzz` from clippy on Windows only.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
This fixes the `mixed line ending` check for Windows in the `pre-commit` step in #253.
This fixes the `mixed line ending` check for Windows in the `pre-commit` step in dashpay#253.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Properly keep track of all create wallets and wallet infos and clean them up at the end. - Head allocate wallet infos like it would happen in real FFI usage and free them properly at the end.
This fixes a bunch of memory leaks in tests detected by sanitizer in CI overhaul PR dashpay#253. - Modified `set_error`, `set_success`, and `ffi_error_set` macro to free previous error messages before setting new ones - Added `FFIError::free_message` helper for test cleanup - Added cleanup in all relevalt tests
Add `encoding='utf-8'` to all file open operations in the FFI documentation generation scripts since the default Windows encoding doesnt seem to go well with it and lets the relevant `pre-commit` step fail for Windows in #253. Also improved error visibility in `verify_ffi.py` by capturing stderr when the subprocess fails.
Add `encoding='utf-8'` to all file open operations in the FFI documentation generation scripts since the default Windows encoding doesnt seem to go well with it and lets the relevant `pre-commit` step fail for Windows in #253. Also improved error visibility in `verify_ffi.py` by capturing stderr when the subprocess fails.
This is a general CI overhaul which will not pass yet but i will work on getting there while this stays a draft.
Summary
cargo-denysecurity audit for vulnerability and license checkingverify-coveragejob that fails if any crate isn't assigned to a test grouppre-commit.ymlto cancel redundant runsTest Groups
Tests are now organized in
.github/ci-groups.yml. CI fails if a new crate is added without being assigned to a group.Jobs: 4 → ~25 (parallel)