core-lightning/.github/workflows/ci.yaml
Christian Decker 090facd79b ci: Temporarily disable lnprototest tests
They are broken, and not a good signal.
2022-11-30 14:24:12 +01:00

368 lines
10 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: |
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
# proto-test:
# name: Protocol Test Config
# runs-on: ubuntu-22.04
# timeout-minutes: 300
# needs: [smoke-test]
# strategy:
# fail-fast: true
# matrix:
# include:
# - {compiler: clang, db: sqlite3}
# - {compiler: gcc, db: postgres}
# steps:
# - name: Checkout
# uses: actions/checkout@v2.0.0
# - name: Build and run
# run: |
# docker build -f contrib/docker/Dockerfile.ubuntu -t cln-ci-ubuntu .
# docker run -e ARCH=${{ matrix.arch }} \
# -e COMPILER=${{ matrix.compiler }} \
# -e DB=${{ matrix.db }} \
# -e NETWORK=${{ matrix.network }} \
# -e TARGET_HOST=${{ matrix.TARGET_HOST }} \
# -e VALGRIND=${{ matrix.valgrind }} \
# -e DEVELOPER=1 \
# -e EXPERIMENTAL_FEATURES=1 \
# -e COMPAT=0 \
# -e PYTEST_PAR=2 \
# -e PYTEST_OPTS="--timeout=300" \
# -e TEST_CMD="make check-protos" \
# -e TEST_GROUP=1 \
# -e TEST_GROUP_COUNT=1 \
# cln-ci-ubuntu
# - name: Upload Unit Test Results
# if: always()
# uses: actions/upload-artifact@v2
# with:
# name: Junit Report ${{ github.run_number }}.{{ matrix.cfg }}
# path: report.*
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.*