CI #987
Workflow file for this run
This file contains 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
name: CI | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push events but only for the "main" branch | |
push: | |
branches: [ main ] | |
pull_request: | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
fmt: | |
name: Format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: | | |
cd libs | |
cargo fmt -- --check | |
cd ../tools/sdk-cli | |
cargo fmt -- --check | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest] | |
include: | |
- os: macos-latest | |
target: Macos | |
- os: windows-latest | |
target: Windows | |
steps: | |
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '6.0.x' | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '1.19.9' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Configure jna windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
curl -o jna-5.12.1.jar https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.12.1/jna-5.12.1.jar | |
set CLASSPATH="%cd%/jna-5.12.1.jar;" | |
- name: Configure jna macos-latest | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
curl -o jna-5.12.1.jar https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.12.1/jna-5.12.1.jar | |
export CLASSPATH=$(pwd)/jna-5.12.1.jar; | |
- uses: actions/setup-python@v4 | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v2 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install OpenSSL for Windows | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: | | |
git clone https://github.com/microsoft/vcpkg.git | |
.\vcpkg\bootstrap-vcpkg.bat | |
.\vcpkg\vcpkg install openssl:x64-windows-static-md | |
pwd | |
- name: Install dependencies | |
run: | | |
cd libs/sdk-bindings | |
make init | |
- name: Run lib tests windows-latest | |
if: ${{ matrix.os == 'windows-latest' }} | |
env: | |
RUSTFLAGS: '-Ctarget-feature=+crt-static' | |
OPENSSL_STATIC: 1 | |
OPENSSL_NO_VENDOR: 1 | |
OPENSSL_DIR: 'D:\a\breez-sdk\breez-sdk\vcpkg\packages\openssl_x86-windows-static-md' | |
# This paths are required to work with static linking | |
OPENSSL_LIB_DIR: 'D:\a\breez-sdk\breez-sdk\vcpkg\packages\openssl_x86-windows-static-md\lib' | |
OPENSSL_INCLUDE_DIR: 'D:\a\breez-sdk\breez-sdk\vcpkg\packages\openssl_x86-windows-static-md\include' | |
LIBCLANG_PATH: 'C:\Program Files\LLVM\bin' | |
run: | | |
cd libs/sdk-bindings | |
make csharp-windows golang-windows | |
cd ../sdk-core | |
cargo test | |
cd .. | |
cargo test test_csharp | |
cargo test test_golang | |
- name: Run lib tests macos-latest | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
cd libs/sdk-bindings | |
make csharp-darwin golang-darwin | |
cd .. | |
cargo test | |
- name: Run tools tests | |
run: | | |
cd tools/sdk-cli | |
cargo test | |
- name: Clippy | |
run: | | |
cd libs | |
# Explicitly allow clippy::uninlined-format-args lint because it's present in the generated breez_sdk.uniffi.rs | |
cargo clippy -- -D warnings -A clippy::uninlined-format-args | |
cargo clippy --tests -- -D warnings -A clippy::uninlined-format-args | |
cd ../tools/sdk-cli | |
cargo clippy -- -D warnings |