Skip to content

CI

CI #986

Workflow file for this run

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\actions\actions\vcpkg\packages\openssl_x86-windows-static-md'
# This paths are required to work with static linking
OPENSSL_LIB_DIR: 'D:\a\actions\actions\vcpkg\packages\openssl_x86-windows-static-md\lib'
OPENSSL_INCLUDE_DIR: 'D:\a\actions\actions\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