lndk/.github/workflows/main.yml
Orbital 4b5279ac36
actions: update codecov-actions to v4
v4 allows for "tokenless uploads" when users submit pull requests
from their own forks of LNDK. This allows outside contributors to the
project to run the action successfully.
2024-06-08 13:26:29 -05:00

83 lines
2.3 KiB
YAML

name: CI
on:
push:
branches: ['master']
pull_request:
branches: ['*']
env:
GO_VERSION: 1.21.0
RUST_VERSION: 1.78.0
jobs:
build_and_format:
name: LNDK Rust Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.GO_VERSION }}
- run: sudo apt-get install protobuf-compiler
- uses: actions-rs/cargo@v1
name: cargo build
with:
command: build
args: --release --all-features
- uses: actions-rs/cargo@v1
name: cargo fmt
with:
command: fmt
args: -- --config unstable_features=true --config wrap_comments=true --config comment_width=100 --check
- uses: actions-rs/cargo@v1
name: cargo clippy
with:
command: clippy
args: -- --deny warnings
########################
# run ubuntu integration tests
########################
ubuntu-integration-test:
name: run ubuntu unit and integration tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.GO_VERSION }}
- run: sudo apt-get install protobuf-compiler
- name: setup go ${{ env.GO_VERSION }}
uses: lightningnetwork/lnd/.github/actions/setup-go@v0-16-4-branch
with:
go-version: '${{ env.GO_VERSION }}'
- name: run unit tests
run: cargo test --bin lndk
- name: run integration tests
run: make itest
coverage:
name: LNDK Code Coverage
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.GO_VERSION }}
- run: sudo apt-get install protobuf-compiler
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate code coverage
run: cargo llvm-cov --bin lndk --workspace --lcov --output-path lcov.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: lcov.info
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}