Commit graph

92 commits

Author SHA1 Message Date
benthecarman
f836794e98
Don't call system time in unless feature enabled 2023-12-19 13:22:17 -06:00
Elias Rohrer
8471644a2d
Deny warnings in CI
Since we recently got rid of our last build/test/doc warnings, we now
deny warnings via `-D warnings` in CI, enforcing no new ones are
introduced.
2023-12-18 08:53:27 +01:00
Matt Corallo
2aecfa45ba Fix dev MSRV build of lightning-transaction-sync
...due to a transitive dependency of the `bitcoind` crate.
2023-12-15 22:39:57 +00:00
Matt Corallo
a866ba7ee3 cfg-gate async signing logic
We are intending to release without having completed our async
signing logic, which sadly means we need to cfg-gate it to ensure
we restore the previous state of panicking on signer errors, rather
than putting us in a stuck state with no way to recover.

Here we add a new `async_signing` cfg flag and use it to gate all
the new logic from #2558 effectively reverting commits
1da29290e7 through
014a336e59.
2023-12-13 22:58:34 +00:00
Wilmer Paulino
a1c92820b0
Merge pull request #2782 from TheBlueMatt/2023-12-check-cfg-tags
Add CI test that `#[cfg]` tags are from a defined set
2023-12-11 11:04:18 -08:00
Matt Corallo
75c0e06ce1 Add CI test that #[cfg] tags are from a defined set
Rust is fairly relaxed in checking the validity of arguments
passed to #[cfg]. While it should probably be more strict when
checking features, it cannot be strict when checking loose cfg
tags, because those can be anything and are simply passed to rustc
via unconstrained arguments.

Thus, we do it for rustc manually, but scanning all our source and
checking that all our cfg tags match a known cfg tag.

Fixes #2184
2023-12-08 23:07:14 +00:00
Elias Rohrer
f368facac0
Manually download bitcoind/electrs for CI tests
Previously, we used the auto-download feature of the
`electrsd`/`bitcoind` crates. While convenient, they unnecessarily
introduced a lot of dependecies (`zip`, `zstd`, `time`, etc.) to our
test environment which needed pinning for the MSRV of 1.63.

Here, we introduce a new `no_download` config flag to the
`lightning-transaction-sync` crate allowing us to disable this
auto-download feature in CI, where we now opt to download the
corresponding binaries manually. We keep the default-auto-download as a
convenience feature for running tests locally though.
2023-12-08 14:40:15 +01:00
Elias Rohrer
ddf2509227
Bump MSRV to rustc 1.63.0 and edition to 2021
.. which is a reasonable common ground, also supported by Debian stable.
2023-12-08 14:03:45 +01:00
Elias Rohrer
28c14cd884
Add Electrum integration test 2023-11-23 09:30:58 +01:00
Matt Corallo
35eb38df14 Fix CI on rustc 1.50 and below
rustc doesn't allow `--features` with `-p`, so we simply skip the
steps that rely on it.
2023-10-23 19:50:12 +00:00
Matt Corallo
bbb8facbe6 Fix (and test) the c_bindings build flag
Rather than only building with the `c_bindings` flag in certain
crates, we go ahead and test all crates with the flag in CI here.
2023-10-21 14:30:21 +00:00
Matt Corallo
d186c683b9 Reduce disk usage in CI
Recently github appears to have reduced the available free disk
space in actions runs, causing CI to fail with out of space errors.
Here we simply run `cargo clean` a few times in CI to reduce our
disk usage somewhat.
2023-10-14 18:41:34 +00:00
Matt Corallo
e1707baf15 Replace cargo build calls in CI with cargo check
We're not actually using the build output, so there's no reason to
do a build vs just running check.
2023-09-17 00:57:00 +00:00
Matt Corallo
b78f93694f Move coverage generation to llvm-cov in the hopes its more stable 2023-09-17 00:56:56 +00:00
Matt Corallo
a13dd715f2 Correct syn pinning on cargo 1.48
Sadly the pinning introduced in 050f5a9029
was brittle in the face of any further syn updates, and has already
broken.

Here we fix it by looking up the actual version of syn to pin.

Note that this dependency is somewhat nonsense as its actually only
a `criterion` dependency, pulled in even though we haven't set the
bench flag (as we aren't yet using `resolver = 2`).
2023-09-16 16:54:17 +00:00
Matt Corallo
ba12a86393 Pin memchr in our release dependency list due to core2 using it
We're working with rust-bitcoin to remove the `core2` dependency
at https://github.com/rust-bitcoin/rust-bitcoin/pull/2066 but until
that lands and we can upgrade rust-bitcoin we're stuck with it. In
the mean time, we should still pass our MSRV tests.
2023-09-15 17:07:17 +00:00
Matt Corallo
050f5a9029 Pin syn back to 2.0.32 fix MSRV in testing 2023-09-14 20:36:42 +00:00
Matt Corallo
afc5a02fc6 Pin the memchr test-only transitive dependency of regex 2023-08-28 21:16:54 +00:00
Matt Corallo
67e5399eff Make CI build -> test flows test -> build.
Doing `cargo test` causes us to build both the crate(s) themselves
and the test binaries, which depend on the main builds. However, it
can start building the test code while the actual program code for
the main crate(s) themselves are being built, making a
build -> test flow slightly slower than test -> build.

Its not really a huge deal, but I'm using `ci/ci-tests.sh` more
locally and it meaningfully changes the time-to-test-run.
2023-08-08 04:19:51 +00:00
Matt Corallo
aa3c78658e Run all tests first before testing more esoteric flags in CI
This should at least marginally more aggressively target things
which are more likely to have changed in CI, making `ci-tests.sh`
more useful as a "default" script for developers to run locally.
2023-07-24 22:04:10 +00:00
Matt Corallo
a287234366 Add a c_bindings test to check-compiles.sh as it should build 2023-07-20 21:43:52 +00:00
Matt Corallo
f38b80ab64 Only try to build lightning-transaction-sync if we meet its MSRV
This should fix CI
2023-07-18 01:54:16 +00:00
Elias Rohrer
f6e0ad2a05 Pin proc-macro2 in CI to fix MSRV breakage
The proc-macro2 crate switched to Rust edition 2021 starting with
v1.0.66, i.e., has MSRV of 1.56.

Here, we pin it in CI to fix the breakage.
2023-07-17 23:20:45 +00:00
Matt Corallo
4ab32f9c2b Test MSRV builds (without dev-dependencies) in CI 2023-07-17 23:20:45 +00:00
Elias Rohrer
7b7ccb6de9
Pin serde_json in CI to fix MSRV
Unfortunately `serde_json` switched to use Rust edition 2021 with
version 1.0.101, i.e., has an MSRV of 1.56 now.
2023-07-12 13:28:25 +02:00
Matt Corallo
6bbe1a4dd1 Fix 1.54- builds with the backtrace feature due to MSRV breakage
The test-only `backtrace` feature broke on rustc prior to 1.55.
2023-06-30 04:25:00 +00:00
Wilmer Paulino
82b646c548
Remove anchors config flag
Now that all of the core functionality for anchor outputs has landed,
we're ready to remove the config flag that was temporarily hiding it
from our API.
2023-06-23 13:32:08 -07:00
Matt Corallo
d40184832a Fix build on supported platforms due to log breakage
The `log` crate decided to break support for rustc 1.48 (Debian
bullseye) the day the next release of Debian comes out, obviously
before anyone has had a chance to upgrade to the new Debian
bookworm (at https://github.com/rust-lang/log/pull/543). Thus, we
have to manually pin it back to the previous release.

Sadly, the `log` crate is a transitive dependency of `tokio` until
0.20, which requires rustc 1.49. Luckily at least we won't have to
deal with this again, as `log` won't be a dependency of ours
anymore soon.
2023-06-12 18:47:29 +00:00
Matt Corallo
5f96d13344
Merge pull request #2199 from tnull/2023-04-fix-async-event-processing
Allow async events processing without holding `total_consistency_lock`
2023-04-22 01:45:06 +00:00
Wilmer Paulino
86531e5ceb
Use new feature to gate test vectors behind
To match the local signatures found in test vectors, we must make sure
we don't use any additional randomess when generating signatures, as
we'll arrive at a different signature otherwise.
2023-04-20 12:14:28 -07:00
Elias Rohrer
36bf817ec7
Actually test futures builds
Currently the BP `futures` tests rely on `std`. In order to actually
have them run, we should enable `std`, i.e., remove
`--no-default-features`.
2023-04-19 10:25:04 +02:00
benthecarman
36f610c4cf
Add CI test for compile no-std serde lightning-invoice 2023-04-16 13:44:14 -05:00
Arik Sosman
bc97b82de4
Add Taproot CI test. 2023-04-03 13:17:12 -07:00
Elias Rohrer
143c0f80cb
Pin tokio to fix CI
Recently `tokio` got updated to 1.27.0, which bumped MSRV from 1.49 to
1.56.

Here we pin `tokio` accordingly to unbreak CI.
2023-03-28 17:40:08 +02:00
Wilmer Paulino
881656ba9e
Test anchors build in CI 2023-03-20 16:46:38 -07:00
Matt Corallo
6558b510cf Replace the bulk of CI with a (much simpler) bash script 2023-03-16 19:15:06 +00:00
Matt Corallo
692b0c78da Set cfg=fuzzing when building fuzz crate in CI
We will likely drop the fuzztarget feature soon, and should thus be
setting cfg=fuzzing explicitly anyway.
2021-08-10 22:26:31 +00:00
Devrandom
32d13a2ff8 Rename no_std feature to no-std
matches rust-bitcoin
2021-08-03 18:53:33 +02:00
Gene Ferneau
da7a851d47
Use hashbrown replacements for std equivalents 2021-06-18 21:54:21 +00:00
Matt Corallo
e44713190a Also correct/check links in private item documentation 2021-03-18 11:28:23 -04:00
Matt Corallo
18a0967758 Enforce doc link correctness during cargo doc runs and in CI 2021-03-18 11:28:23 -04:00
Matt Corallo
4d9532a165 Check each commit at least builds in CI 2020-09-15 19:24:08 -04:00