ci/tests: switch to uv and cleanup github action

This commit is contained in:
daywalker90 2025-08-18 12:03:51 +02:00
parent ae8817e7a6
commit 0a9eb7cd82
No known key found for this signature in database
5 changed files with 3044 additions and 101 deletions

View file

@ -27,8 +27,8 @@ jobs:
bitcoind-version: ["29.0"]
experimental: [1]
deprecated: [0]
python-version: ["3.9", "3.12"]
os: ["ubuntu-24.04"]
python-version: ["3.9", "3.13"]
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
@ -74,23 +74,17 @@ jobs:
path: /usr/local/bin/bitcoin*
key: cache-bitcoind-${{ matrix.bitcoind-version }}-${{ steps.exact_versions.outputs.os_version }}
- name: Cache python dependencies
id: cache-python
uses: actions/cache@v4
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
path: venv
key: cache-python-${{ steps.exact_versions.outputs.python_version }}-${{ steps.exact_versions.outputs.os_version }}-${{ inputs.pyln-version }}-${{ hashFiles('tests/requirements.txt') }}
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
- name: Download Bitcoin ${{ matrix.bitcoind-version }} & install binaries
if: ${{ steps.cache-bitcoind.outputs.cache-hit != 'true' }}
run: |
export BITCOIND_VERSION=${{ matrix.bitcoind-version }}
if [[ "${{ matrix.os }}" =~ "ubuntu" ]]; then
export TARGET_ARCH="x86_64-linux-gnu"
fi
if [[ "${{ matrix.os }}" =~ "macos" ]]; then
export TARGET_ARCH="x86_64-apple-darwin"
fi
export TARGET_ARCH="x86_64-linux-gnu"
wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIND_VERSION}/bitcoin-${BITCOIND_VERSION}-${TARGET_ARCH}.tar.gz
tar -xzf bitcoin-${BITCOIND_VERSION}-${TARGET_ARCH}.tar.gz
sudo mv bitcoin-${BITCOIND_VERSION}/bin/* /usr/local/bin
@ -111,54 +105,11 @@ jobs:
uses: dtolnay/rust-toolchain@stable
- name: Set up protoc
if: ${{ inputs.tagged-release == false}} || contains(matrix.os, 'macos') && ${{ steps.cache-cln.outputs.cache-hit != 'true' }}
if: ${{ inputs.tagged-release == false}} && ${{ steps.cache-cln.outputs.cache-hit != 'true' }}
uses: arduino/setup-protoc@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Core Lightning ${{ inputs.cln-version }}
if: ${{ contains(matrix.os, 'macos') && steps.cache-cln.outputs.cache-hit != 'true' }}
uses: actions/checkout@v4
with:
repository: 'ElementsProject/lightning'
path: 'lightning'
ref: ${{ inputs.cln-version }}
submodules: 'recursive'
- name: Install System dependencies
run: |
if [[ "${{ matrix.os }}" =~ "macos" ]]; then
brew install autoconf automake libtool gnu-sed gettext libsodium sqlite
fi
- name: Install Python dependencies
if: ${{ steps.cache-python.outputs.cache-hit != 'true' }}
run: |
python -m venv venv
source venv/bin/activate
python -m pip install -U pip poetry wheel
pip3 install "pyln-proto<=${{ inputs.pyln-version }}" "pyln-client<=${{ inputs.pyln-version }}" "pyln-testing<=${{ inputs.pyln-version }}"
pip3 install pytest-xdist pytest-test-groups pytest-timeout
if [ -f "tests/requirements.txt" ]; then
pip3 install -r tests/requirements.txt
fi
- name: Compile Core Lightning ${{ inputs.cln-version }} & install binaries
if: ${{ contains(matrix.os, 'macos') && steps.cache-cln.outputs.cache-hit != 'true' }}
run: |
export EXPERIMENTAL_FEATURES=${{ matrix.experimental }}
export COMPAT=${{ matrix.deprecated }}
export VALGRIND=0
source venv/bin/activate
cd lightning
poetry lock
poetry install
./configure --disable-valgrind
poetry run make
sudo make install
- name: Get plugin binary
run: |
source venv/bin/activate
@ -184,5 +135,5 @@ jobs:
export TRAVIS=1
export VALGRIND=0
export PYTEST_TIMEOUT=600
source venv/bin/activate
pytest -n=5 tests/test_*.py
uv run pytest -n=10 tests/test_*.py