mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-29 20:04:34 +01:00
The lnprototests are often blocking PRs, due to them failing, but we can't restart them when valgrind runs are still ongoing, since they'd also restart. Splitting allows us to rerun them selectively and waste less time. Ideally we'd just fix them, but I am by no means knowledgeable enough to fix them now.
332 lines
9.2 KiB
YAML
332 lines
9.2 KiB
YAML
---
|
|
name: Continuous Integration
|
|
on:
|
|
push:
|
|
branches:
|
|
- "master"
|
|
pull_request:
|
|
|
|
jobs:
|
|
smoke-test:
|
|
name: Smoke Test ${{ matrix.cfg }}
|
|
runs-on: ubuntu-20.04
|
|
timeout-minutes: 300
|
|
env:
|
|
DEVELOPER: 1
|
|
VALGRIND: 0
|
|
EXPERIMENTAL_FEATURES: 0
|
|
COMPAT: 1
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
include:
|
|
- CFG: "make and unit test w/ VALGRIND"
|
|
TEST_CMD: "make default check-source"
|
|
VALGRIND: 1
|
|
- CFG: "make-O3-check"
|
|
TEST_CMD: "make check-source check-units installcheck check-gen-updated"
|
|
COPTFLAGS: "-O3"
|
|
- CFG: "make-32-bit-nodev-check"
|
|
ARCH: 32
|
|
TEST_CMD: "make check-source check-units installcheck"
|
|
DEVELOPER: 0
|
|
- CFG: "make-EXPERIMENTAL-check"
|
|
TEST_CMD: "make check-source check-units installcheck check-gen-updated"
|
|
EXPERIMENTAL_FEATURES: 1
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.0.0
|
|
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
bash -x .github/scripts/setup.sh
|
|
|
|
- name: Build
|
|
env:
|
|
VALGRIND: ${{ matrix.VALGRIND }}
|
|
DEVELOPER: ${{ matrix.DEVELOPER }}
|
|
EXPERIMENTAL_FEATURES: ${{ matrix.EXPERIMENTAL_FEATURES }}
|
|
COMPILER: ${{ matrix.COMPILER }}
|
|
ARCH: ${{ matrix.ARCH }}
|
|
COMPAT: ${{ matrix.COMPAT }}
|
|
PYTEST_PAR: ${{ matrix.PYTEST_PAR }}
|
|
PYTEST_OPTS: ${{ matrix.PYTEST_OPTS }}
|
|
COPTFLAGS: ${{ matrix.COPTFLAGS }}
|
|
NETWORK: ${{ matrix.NETWORK }}
|
|
TEST_CMD: ${{ matrix.TEST_CMD }}
|
|
TEST_GROUP_COUNT: ${{ matrix.TEST_GROUP_COUNT }}
|
|
TEST_GROUP: ${{ matrix.TEST_GROUP }}
|
|
run: |
|
|
echo $PROTOC
|
|
which protoc
|
|
bash -x .github/scripts/build.sh
|
|
|
|
- name: Upload Unit Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Junit Report ${{ github.run_number }}.${{ matrix.cfg }}
|
|
path: report.*
|
|
if-no-files-found: ignore
|
|
|
|
check-dock:
|
|
name: Check core-lightning doc
|
|
runs-on: ubuntu-20.04
|
|
env:
|
|
DEVELOPER: 1
|
|
VALGRIND: 0
|
|
EXPERIMENTAL_FEATURES: 0
|
|
COMPAT: 1
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.0.0
|
|
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
|
|
- name: Install dependencies
|
|
run: bash -x .github/scripts/setup.sh
|
|
|
|
- name: Check Doc
|
|
run: |
|
|
pip install mako
|
|
./configure
|
|
make check-doc
|
|
|
|
normal-test:
|
|
name: Normal Test Config ${{ matrix.cfg }}
|
|
runs-on: ubuntu-20.04
|
|
needs: [smoke-test]
|
|
env:
|
|
DEVELOPER: 1
|
|
VALGRIND: 0
|
|
EXPERIMENTAL_FEATURES: 0
|
|
COMPAT: 1
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
# All of the following will just run `make pytest`
|
|
- CFG: "clang-fuzzing"
|
|
COMPILER: clang
|
|
FUZZING: 1
|
|
- CFG: "check-dbstmts"
|
|
COMPILER: gcc
|
|
TEST_CHECK_DBSTMTS: 1
|
|
- CFG: "non-DEVELOPER-non-COMPAT-1"
|
|
DEVELOPER: 0
|
|
COMPAT: 0
|
|
TEST_GROUP: 1
|
|
TEST_GROUP_COUNT: 2
|
|
- CFG: "non-DEVELOPER-non-COMPAT-2"
|
|
DEVELOPER: 0
|
|
COMPAT: 0
|
|
TEST_GROUP: 2
|
|
TEST_GROUP_COUNT: 2
|
|
- CFG: "DUAL_FUND"
|
|
EXPERIMENTAL_DUAL_FUND: 1
|
|
DEVELOPER: 1
|
|
COMPAT: 0
|
|
# Various other configurations
|
|
- CFG: "Elements"
|
|
NETWORK: liquid-regtest
|
|
- CFG: "PostgreSQL"
|
|
DB: postgres
|
|
PYTEST_PAR: 2
|
|
|
|
# The cross-compiled versions
|
|
- CFG: "cross-arm32"
|
|
ARCH: arm32v7
|
|
TARGET_HOST: arm-linux-gnueabihf
|
|
- CFG: "cross-arm64"
|
|
ARCH: arm64v8
|
|
TARGET_HOST: aarch64-linux-gnu
|
|
|
|
# The experimental feature test
|
|
- CFG: "EXPERIMENTAL"
|
|
EXPERIMENTAL_FEATURES: 1
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.0.0
|
|
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
bash -x .github/scripts/setup.sh
|
|
|
|
- name: Build
|
|
env:
|
|
VALGRIND: ${{ matrix.VALGRIND }}
|
|
DEVELOPER: ${{ matrix.DEVELOPER }}
|
|
EXPERIMENTAL_FEATURES: ${{ matrix.EXPERIMENTAL_FEATURES }}
|
|
EXPERIMENTAL_DUAL_FUND: ${{ matrix.EXPERIMENTAL_DUAL_FUND }}
|
|
COMPILER: ${{ matrix.COMPILER }}
|
|
ARCH: ${{ matrix.ARCH }}
|
|
COMPAT: ${{ matrix.COMPAT }}
|
|
FUZZING: ${{ matrix.FUZZING }}
|
|
PYTEST_PAR: ${{ matrix.PYTEST_PAR }}
|
|
PYTEST_OPTS: ${{ matrix.PYTEST_OPTS }}
|
|
NETWORK: ${{ matrix.NETWORK }}
|
|
TEST_CHECK_DBSTMTS: ${{ matrix.TEST_CHECK_DBSTMTS }}
|
|
TEST_CMD: ${{ matrix.TEST_CMD }}
|
|
TEST_GROUP_COUNT: ${{ matrix.TEST_GROUP_COUNT }}
|
|
TEST_GROUP: ${{ matrix.TEST_GROUP }}
|
|
TEST_DB_PROVIDER: ${{ matrix.DB }}
|
|
run: |
|
|
bash -x .github/scripts/build.sh
|
|
|
|
- name: Upload Unit Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Junit Report ${{ github.run_number }}.${{ matrix.cfg }}
|
|
path: report.*
|
|
|
|
valgrind-test:
|
|
name: Valgrind Test Config ${{ matrix.cfg }}
|
|
runs-on: ubuntu-20.04
|
|
needs: [smoke-test]
|
|
env:
|
|
DEVELOPER: 1
|
|
EXPERIMENTAL_FEATURES: 0
|
|
COMPAT: 1
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
LABEL: "Valgrind-test"
|
|
strategy:
|
|
fail-fast: true
|
|
matrix:
|
|
include:
|
|
- CFG: "valgrind-1"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 1
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-2"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 2
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-3"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 3
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-4"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 4
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-5"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 5
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-6"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 6
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-7"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 7
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-8"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 8
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-9"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 9
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
- CFG: "valgrind-10"
|
|
VALGRIND: 1
|
|
TEST_GROUP: 10
|
|
TEST_GROUP_COUNT: 10
|
|
PYTEST_PAR: 3
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.0.0
|
|
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
bash -x .github/scripts/setup.sh
|
|
|
|
- name: Build
|
|
env:
|
|
VALGRIND: ${{ matrix.VALGRIND }}
|
|
DEVELOPER: ${{ matrix.DEVELOPER }}
|
|
EXPERIMENTAL_FEATURES: ${{ matrix.EXPERIMENTAL_FEATURES }}
|
|
EXPERIMENTAL_DUAL_FUND: ${{ matrix.EXPERIMENTAL_DUAL_FUND }}
|
|
COMPILER: ${{ matrix.COMPILER }}
|
|
ARCH: ${{ matrix.ARCH }}
|
|
COMPAT: ${{ matrix.COMPAT }}
|
|
PYTEST_PAR: ${{ matrix.PYTEST_PAR }}
|
|
PYTEST_OPTS: ${{ matrix.PYTEST_OPTS }}
|
|
NETWORK: ${{ matrix.NETWORK }}
|
|
TEST_CMD: ${{ matrix.TEST_CMD }}
|
|
TEST_GROUP_COUNT: ${{ matrix.TEST_GROUP_COUNT }}
|
|
TEST_GROUP: ${{ matrix.TEST_GROUP }}
|
|
run: |
|
|
bash -x .github/scripts/build.sh
|
|
|
|
- name: Upload Unit Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Junit Report ${{ github.run_number }}.${{ matrix.cfg }}
|
|
path: report.*
|
|
|
|
rust-test:
|
|
name: Rust Test Config
|
|
runs-on: ubuntu-20.04
|
|
needs: [smoke-test]
|
|
env:
|
|
DEVELOPER: 1
|
|
RUST: 1
|
|
VALGRIND: 0
|
|
# Run only the rust tests, others are not impacted.
|
|
TEST_CMD: "make -j 8 && pytest -vvv tests/test_cln_rs.py"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2.0.0
|
|
|
|
- name: Set up Python 3.7
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
bash -x .github/scripts/setup.sh
|
|
|
|
- name: Build
|
|
run: |
|
|
bash -x .github/scripts/build.sh
|
|
|
|
- name: Upload Unit Test Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Junit Report ${{ github.run_number }}.${{ matrix.cfg }}
|
|
path: report.*
|