File tree Expand file tree Collapse file tree 3 files changed +62
-17
lines changed Expand file tree Collapse file tree 3 files changed +62
-17
lines changed Original file line number Diff line number Diff line change @@ -233,6 +233,24 @@ jobs:
233233 RUSTFLAGS : ' --cfg=taproot'
234234 RUSTDOCFLAGS : ' --cfg=taproot'
235235
236+ check_docs :
237+ runs-on : self-hosted
238+ env :
239+ # While docs.rs builds using a nightly compiler (and we use some nightly features),
240+ # nightly ends up randomly breaking builds occasionally, so we instead use beta
241+ # and set RUSTC_BOOTSTRAP in check-docsrs.sh
242+ TOOLCHAIN : beta
243+ steps :
244+ - name : Checkout source code
245+ uses : actions/checkout@v4
246+ with :
247+ fetch-depth : 0
248+ - name : Install Rust ${{ env.TOOLCHAIN }} toolchain
249+ run : |
250+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain ${{ env.TOOLCHAIN }}
251+ - name : Simulate docs.rs build
252+ run : ci/check-docsrs.sh
253+
236254 fuzz :
237255 runs-on : self-hosted
238256 env :
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ # shellcheck disable=SC2002,SC2086,SC2207
3+
4+ set -ex
5+
6+ # Attempt to simulate the docsrs builds. Sadly its not entirely trivial as
7+ # docs.rs reads metadata out of Cargo.toml which we don't want to have a whole
8+ # parser for.
9+
10+ WORKSPACE_MEMBERS=( $( cat Cargo.toml | tr ' \n' ' \r' | sed ' s/\r //g' | tr ' \r' ' \n' | grep ' ^members =' | sed ' s/members.*=.*\[//' | tr -d ' "' | tr ' ,' ' \n' ) )
11+ echo " ${WORKSPACE_MEMBERS[@]} "
12+ for CRATE in " ${WORKSPACE_MEMBERS[@]} " ; do
13+ pushd " $CRATE "
14+ CARGO_ARGS=" "
15+ RUSTDOC_ARGS=" "
16+ cat Cargo.toml | grep -A 100 ' \[package.metadata.docs.rs\]' | tail -n +2 > /tmp/ldk-docsrs-rustdoc-config.txt
17+ while read -r LINE; do
18+ case " $LINE " in
19+ " [" * ) break ;;
20+ " features" * )
21+ OG_IFS=" $IFS "
22+ IFS=' ,'
23+ for FEATURE in $( echo " $LINE " | sed ' s/features.*=.*\[//g' | tr -d ' "] ' ) ; do
24+ export CARGO_ARGS=" $CARGO_ARGS --features $FEATURE "
25+ done
26+ IFS=" $OG_IFS "
27+ ;;
28+ " all-features = true" )
29+ export CARGO_ARGS=" $CARGO_ARGS --all-features"
30+ ;;
31+ " rustdoc-args" * )
32+ RUSTDOC_ARGS=" $( echo " $LINE " | sed ' s/rustdoc-args.*=.*\[//g' | tr -d ' "],' ) "
33+ ;;
34+ esac
35+ done < /tmp/ldk-docsrs-rustdoc-config.txt
36+ rm /tmp/ldk-docsrs-rustdoc-config.txt
37+ echo " Building $CRATE with args $CARGO_ARGS and flags $RUSTDOC_ARGS "
38+ # We rely on nightly features but want to use a stable release in CI to avoid
39+ # spurous breakage, thus we set RUSTC_BOOTSTRAP=1 here.
40+ RUSTC_BOOTSTRAP=1 cargo rustdoc $CARGO_ARGS -- $RUSTDOC_ARGS
41+ popd
42+ done
Original file line number Diff line number Diff line change 11#! /bin/bash
2+ # shellcheck disable=SC2002,SC2207
23set -eox pipefail
34
45RUSTC_MINOR_VERSION=$( rustc --version | awk ' { split($2,a,"."); print a[2] }' )
@@ -41,23 +42,7 @@ export RUST_BACKTRACE=1
4142echo -e " \n\nChecking the workspace, except lightning-transaction-sync."
4243cargo check --verbose --color always
4344
44- # When the workspace members change, make sure to update the list here as well
45- # as in `Cargo.toml`.
46- WORKSPACE_MEMBERS=(
47- lightning
48- lightning-types
49- lightning-block-sync
50- lightning-invoice
51- lightning-net-tokio
52- lightning-persister
53- lightning-background-processor
54- lightning-rapid-gossip-sync
55- lightning-custom-message
56- lightning-macros
57- lightning-dns-resolver
58- lightning-liquidity
59- possiblyrandom
60- )
45+ WORKSPACE_MEMBERS=( $( cat Cargo.toml | tr ' \n' ' \r' | sed ' s/\r //g' | tr ' \r' ' \n' | grep ' ^members =' | sed ' s/members.*=.*\[//' | tr -d ' "' | tr ' ,' ' ' ) )
6146
6247echo -e " \n\nTesting the workspace, except lightning-transaction-sync."
6348cargo test --verbose --color always
You can’t perform that action at this time.
0 commit comments