Skip to content

CI: build cln from source #73

CI: build cln from source

CI: build cln from source #73

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- "main"
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
fmt-check:
name: Format Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install rust
run: |
rustup set auto-self-update disable
rustup toolchain install stable --profile minimal
- name: Install virtualenv
run: python -m pip install --user virtualenv
- name: Run Format check
run: make fmt-check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install rust
run: |
rustup set auto-self-update disable
rustup toolchain install stable --profile minimal
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: clippy
run: make clippy
compile-cln:
runs-on: ubuntu-latest
strategy:
matrix:
cln:
- version: v24.08
rust-version: 1.79.0
- version: v24.05
rust-version: 1.79.0
- version: v24.02.2
rust-version: 1.79.0
- version: v23.11.2
rust-version: 1.79.0
steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ElementsProject/lightning
ref: ${{ matrix.cln.version }}
- name: Set up Python 3.8
uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install dependencies
env:
RUST_VERSION: ${{ matrix.cln.rust-version }}
run: |
bash -x .github/scripts/setup.sh
- name: Build
run: |
set -e
pip3 install --user pip wheel poetry
poetry export -o requirements.txt --with dev --without-hashes
python3 -m pip install -r requirements.txt
./configure
make -j $(nproc) testpack.tar.bz2
# Rename now so we don't clash
mv testpack.tar.bz2 cln-${{ matrix.cln.version }}.tar.bz2
- uses: actions/upload-artifact@v4
with:
name: cln-${{ matrix.cln.version }}.tar.bz2
path: cln-${{ matrix.cln.version }}.tar.bz2
itest:
name: Integration tests
needs: compile-cln
runs-on: ubuntu-latest
strategy:
matrix:
cln-version: [
v24.08,
v24.05,
v24.02.2,
v23.11.2,
]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install rust
run: |
rustup set auto-self-update disable
rustup toolchain install stable --profile minimal
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Install bitcoind
run: |
wget -q "https://bitcoincore.org/bin/bitcoin-core-26.1/bitcoin-26.1-x86_64-linux-gnu.tar.gz"
tar -xzf "bitcoin-26.1-x86_64-linux-gnu.tar.gz"
sudo cp -r "bitcoin-26.1/bin" "/usr/local"
rm -rf "bitcoin-26.1-x86_64-linux-gnu.tar.gz" "bitcoin-26.1"
- name: Checkout
uses: actions/checkout@v4
with:
repository: ElementsProject/lightning
ref: ${{ matrix.cln-version }}
path: cln
- name: Download CLN
uses: actions/download-artifact@v4
with:
name: cln-${{ matrix.cln-version }}.tar.bz2
path: cln
- name: Unpack CLN
working-directory: cln
run: tar -xaf cln-${{ matrix.cln-version }}.tar.bz2
- name: Install CLN
working-directory: cln
run: make install
- name: Install virtualenv
run: python -m pip install --user virtualenv
- name: Integration tests
env:
TEST_DEBUG: 1
SLOW_MACHINE: 1
PYTEST_PAR: 10
run: make itest
utest:
name: Unit tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install rust
run: |
rustup set auto-self-update disable
rustup toolchain install stable --profile minimal
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Unit tests
run: make utest