Skip to content

Nightly Integration Tests (master) #666

Nightly Integration Tests (master)

Nightly Integration Tests (master) #666

Workflow file for this run

name: Nightly Integration Tests (master)
on:
schedule:
- cron: "21 2 * * *"
workflow_dispatch:
jobs:
nightly-build-and-test:
name: Test PY=${{ matrix.python-version }}, BCD=${{ matrix.bitcoind-version }}, EXP=${{ matrix.experimental }}, DEP=${{ matrix.deprecated }}
runs-on: ubuntu-latest
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
bitcoind-version: ["28.1"]
experimental: [1]
deprecated: [0]
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: false
- name: Download Bitcoin & install binaries
run: |
export BITCOIND_VERSION=${{ matrix.bitcoind-version }}
wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIND_VERSION}/bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz
tar -xzf bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz
sudo mv bitcoin-${BITCOIND_VERSION}/bin/* /usr/local/bin
rm -rf bitcoin-${BITCOIND_VERSION}-x86_64-linux-gnu.tar.gz bitcoin-${BITCOIND_VERSION}
- name: Checkout Core Lightning
uses: actions/checkout@v6
with:
repository: 'ElementsProject/lightning'
path: 'lightning'
ref: master
submodules: 'recursive'
fetch-depth: 0 # Required for pyln versions to be recognized
- name: Compile & install Core Lightning
run: |
export EXPERIMENTAL_FEATURES=${{ matrix.experimental }}
export COMPAT=${{ matrix.deprecated }}
export VALGRIND=0
sudo apt-get install -y \
build-essential \
gettext \
libpq-dev \
libsodium-dev \
libsqlite3-dev \
net-tools \
postgresql \
protobuf-compiler \
python3 \
python3-pip \
zlib1g-dev \
jq \
autoconf \
automake \
libtool \
libffi-dev \
lowdown
cd lightning
pip3 install --user -U \
pip \
poetry \
poetry-plugin-export \
wheel \
blinker \
pytest-custom-exit-code==0.3.0 \
pytest-json-report
uv sync --all-extras --all-groups
./configure --disable-valgrind
uv run make -j $(nproc)
sudo -E bash -c "source $HOME/.cargo/env && rustup default stable && make install"
- name: Test with pytest
run: |
export EXPERIMENTAL_FEATURES=${{ matrix.experimental }}
export COMPAT=${{ matrix.deprecated }}
export SLOW_MACHINE=1
export TEST_DEBUG=1
export TRAVIS=1
export CLN_PATH=${{ github.workspace }}/lightning
uv run --no-project python3 .ci/test.py nightly ${{ matrix.python-version }} --update-badges
gather:
# A dummy task that depends on the full matrix of tests, and signals completion.
name: CI completion
runs-on: ubuntu-latest
if: ${{ always() }}
needs:
- nightly-build-and-test
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Complete
run: |
python_versions='3.9 3.10 3.11 3.12 3.13'
echo "Updating badges data for nightly workflow..."
python3 .ci/update_badges.py nightly $(echo "$python_versions")
echo "CI completed."