Skip to content

enforce swap size

enforce swap size #55

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
itest-grpc-check:
name: itest grpc check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install virtualenv
run: python -m pip install --user virtualenv
- name: Generate grpc bindings
run: |
make itest-gen-proto
make fmt-python
- 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
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: Install Protoc
if: steps.cache.outputs.cache-hit != 'true'
uses: arduino/setup-protoc@v3
with:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: clippy
run: make clippy
compile-cln:
runs-on: ubuntu-latest
strategy:
matrix:
cln:
- version: v24.11
rust-version: stable
org: ElementsProject
repo: lightning
- version: v24.08
rust-version: stable
org: ElementsProject
repo: lightning
- version: v24.05
rust-version: 1.79.0
org: ElementsProject
repo: lightning
- version: v24.02.2
rust-version: 1.79.0
org: ElementsProject
repo: lightning
- version: v23.11.2
rust-version: 1.79.0
org: ElementsProject
repo: lightning
steps:
- name: Cache CLN
id: cache
uses: actions/cache@v4
with:
path: inst
key: ${{ runner.os }}-${{ runner.arch }}-cln-${{ matrix.cln.version}}
- name: Checkout
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: ${{ matrix.cln.org }}/${{ matrix.cln.repo }}
ref: ${{ matrix.cln.version }}
- name: Install dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: |
sudo apt-get install -y libffi-dev zlib1g-dev libsodium-dev gettext
- name: Set up Python 3.8
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/setup-python@v5
with:
python-version: 3.8
- name: Install rust
if: steps.cache.outputs.cache-hit != 'true'
run: |
rustup set auto-self-update disable
rustup install ${{ matrix.cln.rust-version }}
rustup default ${{ matrix.cln.rust-version }}
- name: Install Protoc
if: steps.cache.outputs.cache-hit != 'true'
uses: arduino/setup-protoc@v3
with:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build
if: steps.cache.outputs.cache-hit != 'true'
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 --enable-rust
make -j $(nproc)
mkdir inst
make install DESTDIR=inst/
- uses: actions/upload-artifact@v4
name: Upload cln artifact
with:
name: ${{ runner.os }}-${{ runner.arch }}-cln-${{ matrix.cln.version}}
path: inst
compile-lnd:
runs-on: ubuntu-latest
strategy:
matrix:
lnd:
- version: jssdwt-v0.18.3-with-ca
org: breez
repo: lnd
go-version: 1.21.4
steps:
- name: Cache lnd
id: cache
uses: actions/cache@v4
with:
path: inst
key: ${{ runner.os }}-${{ runner.arch }}-lnd-${{ matrix.lnd.version}}
- name: Checkout
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/checkout@v4
with:
repository: ${{ matrix.lnd.org }}/${{ matrix.lnd.repo }}
ref: ${{ matrix.lnd.version }}
- name: Setup go ${{ matrix.lnd.go-version }}
uses: actions/setup-go@v5
with:
go-version: '${{ matrix.lnd.go-version }}'
- name: Compile lnd
if: steps.cache.outputs.cache-hit != 'true'
env:
GOPATH: /opt/lnd
run: make release-install
- uses: actions/upload-artifact@v4
name: Upload lnd artifact
with:
name: ${{ runner.os }}-${{ runner.arch }}-lnd-${{ matrix.lnd.version}}
path: /opt/lnd/bin/lnd
itest-cln:
name: Integration tests (cln)
needs: compile-cln
runs-on: ubuntu-latest
strategy:
matrix:
cln-version:
- v24.11
- 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: Install Protoc
uses: arduino/setup-protoc@v3
with:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- 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: Download cln artifact
uses: actions/download-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-cln-${{ matrix.cln-version}}
path: inst
- name: Install CLN
run: |
chmod +x -R inst/
sudo cp -a inst/usr/local/. /usr/local/
- name: Install virtualenv
run: python -m pip install --user virtualenv
- name: Integration tests
env:
TEST_DEBUG: 1
SLOW_MACHINE: 1
PYTEST_PAR: 5
run: make itest-cln
itest-lnd:
name: Integration tests (lnd)
needs:
- compile-cln
- compile-lnd
runs-on: ubuntu-latest
strategy:
matrix:
test:
- lnd-version: jssdwt-v0.18.3-with-ca
cln-version: v24.08
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 Protoc
uses: arduino/setup-protoc@v3
with:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- 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: Download lnd artifact
uses: actions/download-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-lnd-${{ matrix.test.lnd-version}}
path: lnd-artifact
- name: Install lnd
run: |
chmod +x -R lnd-artifact/
sudo cp lnd-artifact/lnd /usr/local/bin
- name: Download cln artifact
uses: actions/download-artifact@v4
with:
name: ${{ runner.os }}-${{ runner.arch }}-cln-${{ matrix.test.cln-version}}
path: inst
- name: Install CLN
run: |
chmod +x -R inst/
sudo cp -a inst/usr/local/. /usr/local/
- name: Install virtualenv
run: python -m pip install --user virtualenv
- name: Integration tests
env:
TEST_DEBUG: 1
SLOW_MACHINE: 1
PYTEST_PAR: 5
run: make itest-lnd
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: Install Protoc
if: steps.cache.outputs.cache-hit != 'true'
uses: arduino/setup-protoc@v3
with:
version: "27.4"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Unit tests
run: make utest