Skip to content

Commit a8cde8e

Browse files
committed
Build address-sanitized swift binary first
1 parent 300f0b3 commit a8cde8e

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

.github/workflows/swift.yml

+26-26
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,6 @@ jobs:
6161
LDK_C_BINDINGS_BASE: ${{ github.workspace }}/ci/ldk-c-bindings
6262
H_FILE_OUTPUT_DIRECTORY: ${{ github.workspace }}/ci/LDKSwift/Sources/LDKHeaders/include
6363
C_FILE_OUTPUT_DIRECTORY: ${{ github.workspace }}/ci/LDKSwift/Sources/LDKHeaders
64-
- name: Prepare rust binaries
65-
run: |
66-
env
67-
pushd ${{ github.workspace }}/ci/ldk-c-bindings/lightning-c-bindings
68-
cargo clean
69-
cargo build --release --features std
70-
71-
# debug the target
72-
find ./target
73-
env:
74-
RUST_BACKTRACE: 1
75-
RUSTFLAGS: --cfg=c_bindings -C embed-bitcode=yes -C lto
76-
CARGO_PROFILE_RELEASE_LTO: true
7764
- name: Install Swift Toolchain
7865
run: |
7966
curl --verbose -L -o swift-5.7.2-RELEASE-ubuntu22.04.tar.gz https://download.swift.org/swift-5.7.2-release/ubuntu2204/swift-5.7.2-RELEASE/swift-5.7.2-RELEASE-ubuntu22.04.tar.gz
@@ -107,40 +94,53 @@ jobs:
10794
- name: Verify generated output recency
10895
run: |
10996
git diff --exit-code out/ ':(exclude)out/VersionDescriptor.swift'
110-
- name: Build Swift bindings package without address sanitizer
97+
- name: Build Swift bindings package with address sanitizer
11198
run: |
112-
env
11399
cd ci/LDKSwift
100+
# should be /usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.asan-x86_64.a
101+
export LLVM_CLANG_ASAN_PATH="$(clang -print-resource-dir)/lib/linux/libclang_rt.asan-x86_64.a"
114102
../../swift-5.7.2-RELEASE-ubuntu22.04/usr/bin/swift build
115103
env:
116104
LDK_C_BINDINGS_BASE: ${{ github.workspace }}/ci/ldk-c-bindings
117-
LDK_C_BINDINGS_BINARY_DIRECTORY: ${{ github.workspace }}/ci/ldk-c-bindings/lightning-c-bindings/target/release
118105
RUST_BACKTRACE: 1
119-
- name: Test Swift bindings package without address sanitizer
106+
- name: Test Swift bindings package with address sanitizer
107+
continue-on-error: true
120108
run: |
121-
env
122109
cd ci/LDKSwift
110+
# should be /usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.asan-x86_64.a
111+
export LLVM_CLANG_ASAN_PATH="$(clang -print-resource-dir)/lib/linux/libclang_rt.asan-x86_64.a"
123112
../../swift-5.7.2-RELEASE-ubuntu22.04/usr/bin/swift test -v
124113
env:
125114
LDK_C_BINDINGS_BASE: ${{ github.workspace }}/ci/ldk-c-bindings
126-
LDK_C_BINDINGS_BINARY_DIRECTORY: ${{ github.workspace }}/ci/ldk-c-bindings/lightning-c-bindings/target/release
127115
RUST_BACKTRACE: 1
128-
- name: Build Swift bindings package with address sanitizer
116+
- name: Prepare release-optimized rust binaries
129117
run: |
118+
env
119+
pushd ${{ github.workspace }}/ci/ldk-c-bindings/lightning-c-bindings
120+
cargo clean
121+
cargo build --release --features std
122+
123+
# debug the target
124+
find ./target
125+
env:
126+
RUST_BACKTRACE: 1
127+
RUSTFLAGS: --cfg=c_bindings -C embed-bitcode=yes -C lto
128+
CARGO_PROFILE_RELEASE_LTO: true
129+
- name: Build Swift bindings package without address sanitizer
130+
run: |
131+
env
130132
cd ci/LDKSwift
131-
# should be /usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.asan-x86_64.a
132-
export LLVM_CLANG_ASAN_PATH="$(clang -print-resource-dir)/lib/linux/libclang_rt.asan-x86_64.a"
133133
../../swift-5.7.2-RELEASE-ubuntu22.04/usr/bin/swift build
134134
env:
135135
LDK_C_BINDINGS_BASE: ${{ github.workspace }}/ci/ldk-c-bindings
136+
LDK_C_BINDINGS_BINARY_DIRECTORY: ${{ github.workspace }}/ci/ldk-c-bindings/lightning-c-bindings/target/release
136137
RUST_BACKTRACE: 1
137-
- name: Test Swift bindings package with address sanitizer
138-
continue-on-error: true
138+
- name: Test Swift bindings package without address sanitizer
139139
run: |
140+
env
140141
cd ci/LDKSwift
141-
# should be /usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.asan-x86_64.a
142-
export LLVM_CLANG_ASAN_PATH="$(clang -print-resource-dir)/lib/linux/libclang_rt.asan-x86_64.a"
143142
../../swift-5.7.2-RELEASE-ubuntu22.04/usr/bin/swift test -v
144143
env:
145144
LDK_C_BINDINGS_BASE: ${{ github.workspace }}/ci/ldk-c-bindings
145+
LDK_C_BINDINGS_BINARY_DIRECTORY: ${{ github.workspace }}/ci/ldk-c-bindings/lightning-c-bindings/target/release
146146
RUST_BACKTRACE: 1

0 commit comments

Comments
 (0)