Files
breez-sdk-liquid/.github/workflows/main.yml
ok300 bcb4743260 Integrate sdk-common (#308)
* Rename Network to LiquidSdkNetwork to avoid naming conflicts with sdk-common

* Integrate sdk-common: re-use parse_invoice

* Fix UDL bindings tests

* Add input parser support

* CLI: Add input parser support

* Integrate lnurl-pay

* Cargo format, re-generate FRB and RN bindings

* Duplicate LnUrlPayError, update FRB/UniFFI bindings

* Move duplicate LnUrlPayError to FRB bindings.rs

* Add support for lnurl-withdraw

* Lnurl-withdraw: convert units, incorporate fees

* Bump sdk-common, rename InputType::LnUrlError

* Bump sdk-common, remove Wrapped prefix from LnUrlPaySuccessData, LnUrlPayResult

* LNURL-withdraw: add missing UDL mappings

* Add support for LNURL-auth

* Move LNURL structs into models.rs

* Rename LiquidSdkNetwork to LiquidNetwork

* Fix binding tests

* Fix tests

* Move FRB mirroring structs to bindings.rs

* Remove TODO

* Bump sdk-common, remove sdk-common dependency on rusqlite

* Propagate LiquidNetwork rename into flutter example app

* CI: install protobuf before running clippy

* CI: add rust cache, protobuf for remaining rust steps
2024-06-20 16:18:50 +00:00

207 lines
4.9 KiB
YAML

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:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
fmt:
name: Cargo Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check Rust Formatting
run: |
cd lib
cargo fmt -- --check
cd ../cli
cargo fmt -- --check
clippy:
name: Cargo Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
lib -> target
cli -> target
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
version: "23.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Check Rust Clippy
run: |
cd lib
cargo clippy -- -D warnings
cd ../cli
cargo clippy -- -D warnings
tests:
name: Test sdk-core
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
lib -> target
cli -> target
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
version: "23.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Run sdk-core tests
working-directory: lib/core
run: cargo test
build-bindings:
name: Test bindings
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
workspaces: |
lib -> target
cli -> target
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
version: "23.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build bindings
working-directory: lib/bindings
run: cargo build
- name: Setup python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Run bindings tests
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;
cd lib/bindings
cargo test
react-native:
name: Check react native bindings
runs-on: macOS-14
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: React native codegen
working-directory: packages/react-native
run: |
yarn global add tslint typescript
brew update
brew install kotlin ktlint swiftformat
make react-native
- name: Check git status
env:
GIT_PAGER: cat
run: |
status=$(git status --porcelain)
if [[ -n "$status" ]]; then
echo "Git status has changes"
echo "$status"
git diff
exit 1
else
echo "No changes in git status"
fi
flutter:
name: Check Dart/Flutter bindings
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
- run: flutter --version
- name: Set up just
uses: extractions/setup-just@v2
- name: Set up Melos
uses: bluefireteam/melos-action@v3
with:
run-bootstrap: false
- name: Initialize the workspace
working-directory: lib/bindings/langs/flutter/
run: |
just clean
just init
- name: Install flutter_rust_bridge_codegen dependencies
working-directory: lib/bindings/langs/flutter/
run: just frb
- name: Generate Dart/Flutter bindings
working-directory: lib/bindings/langs/flutter/
continue-on-error: true
run: |
just codegen
- name: Generate FFI bindings
working-directory: lib/bindings/langs/flutter/
continue-on-error: true
run: |
just ffigen
- name: Static Analysis
working-directory: lib/bindings/langs/flutter/
run: melos analyze
- name: Check Formatting
working-directory: lib/bindings/langs/flutter/
run: melos check-format
- name: Check git status
env:
GIT_PAGER: cat
run: |
status=$(git status --porcelain)
if [[ -n "$status" ]]; then
echo "Git status has changes"
echo "$status"
git diff
exit 1
else
echo "No changes in git status"
fi