enforce swap size #55
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |