diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bdfe3535a..eec3ee1a6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,10 +5,6 @@ on: branches: - "master" pull_request: - workflow_run: - workflows: [Pre-Builds Checks] - types: - - completed concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -21,17 +17,65 @@ env: SLOW_MACHINE: 1 jobs: + prebuild: + name: Pre-build checks + runs-on: ubuntu-20.04 + timeout-minutes: 30 + env: + RUST: 1 + COMPAT: 1 + BOLTDIR: bolts + strategy: + fail-fast: true + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + + - name: Rebase + run: | + git config user.name github-actions + git config user.email github-actions@github.com + git fetch origin ${{ github.base_ref }} + git rebase origin/${{ github.base_ref }} + + - name: Set up Python 3.7 + uses: actions/setup-python@v4 + with: + python-version: 3.7 + + - name: Install dependencies + run: | + bash -x .github/scripts/setup.sh + pip install -U pip wheel poetry + # Export and then use pip to install into the current env + poetry export -o /tmp/requirements.txt --without-hashes --with dev + pip install -r /tmp/requirements.txt + # We're going to check BOLT quotes, so get the latest version + git clone https://github.com/lightning/bolts.git ../${BOLTDIR} + - name: Configure + run: ./configure + - name: Check source + run: make -j 4 check-source BASE_REF="origin/${{ github.base_ref }}" + - name: Check Generated Files have been updated + run: make -j 4 check-gen-updated + - name: Check docs + run: make -j 4 check-doc + check-units: # The unit test checks are not in the critical path (not dependent # on the integration tests), so run them with `valgrind` name: Run unit tests runs-on: ubuntu-22.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 30 env: COMPAT: 1 VALGRIND: 1 BOLTDIR: bolts + needs: + - prebuild steps: - name: Checkout uses: actions/checkout@v3 @@ -60,13 +104,14 @@ jobs: check-units-sanitizers: name: Run unit tests with ASan and UBSan runs-on: ubuntu-22.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 30 env: COMPAT: 1 ASAN: 1 UBSAN: 1 VALGRIND: 0 + needs: + - prebuild steps: - name: Checkout uses: actions/checkout@v3 @@ -93,13 +138,14 @@ jobs: check-fuzz: name: Run fuzz regression tests runs-on: ubuntu-22.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} env: COMPAT: 1 DEVELOPER: 1 ASAN: 1 UBSAN: 1 VALGRIND: 0 + needs: + - prebuild steps: - name: Checkout uses: actions/checkout@v3 @@ -125,10 +171,11 @@ jobs: compile: name: Compile CLN ${{ matrix.cfg }} runs-on: ubuntu-22.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 30 env: COMPAT: 1 + needs: + - prebuild strategy: fail-fast: true matrix: @@ -356,7 +403,6 @@ jobs: integration-sanitizers: name: Sanitizers Test CLN runs-on: ubuntu-22.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 120 env: COMPAT: 1 @@ -370,6 +416,8 @@ jobs: SLOW_MACHINE: 1 TEST_DEBUG: 1 PYTEST_OPTS: --test-group-random-seed=42 --timeout=1800 + needs: + - prebuild strategy: fail-fast: true matrix: diff --git a/.github/workflows/ci_build.yml b/.github/workflows/ci_build.yml index 5081a984d..84f3acf86 100644 --- a/.github/workflows/ci_build.yml +++ b/.github/workflows/ci_build.yml @@ -1,15 +1,10 @@ name: CI Compilation testing -on: - workflow_run: - workflows: [Pre-Builds Checks] - types: - - completed +on: [push, pull_request] jobs: test: runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 120 strategy: fail-fast: false @@ -17,6 +12,10 @@ jobs: include: - { OS: alpine } on: + workflow_run: + workflows: [Pre-build checks] + types: + - completed steps: - uses: actions/checkout@v2 - name: Integration testing diff --git a/.github/workflows/pre_build.yml b/.github/workflows/pre_build.yml deleted file mode 100644 index 4e67554fb..000000000 --- a/.github/workflows/pre_build.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Pre-Builds Checks - -on: - push: - branches: - - "master" - pull_request: - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true - -jobs: - prebuild: - name: Codebase sanity Check - runs-on: ubuntu-20.04 - timeout-minutes: 30 - env: - RUST: 1 - COMPAT: 1 - BOLTDIR: bolts - strategy: - fail-fast: true - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - - - name: Rebase - run: | - git config user.name github-actions - git config user.email github-actions@github.com - git fetch origin ${{ github.base_ref }} - git rebase origin/${{ github.base_ref }} - - - name: Set up Python 3.7 - uses: actions/setup-python@v4 - with: - python-version: 3.7 - - - name: Install dependencies - run: | - bash -x .github/scripts/setup.sh - pip install -U pip wheel poetry - # Export and then use pip to install into the current env - poetry export -o /tmp/requirements.txt --without-hashes --with dev - pip install -r /tmp/requirements.txt - # We're going to check BOLT quotes, so get the latest version - git clone https://github.com/lightning/bolts.git ../${BOLTDIR} - - name: Configure - run: ./configure - - name: Check source - run: make -j 4 check-source BASE_REF="origin/${{ github.base_ref }}" - - name: Check Generated Files have been updated - run: make -j 4 check-gen-updated - - name: Check docs - run: make -j 4 check-doc - diff --git a/.github/workflows/prototest.yaml b/.github/workflows/prototest.yaml index 548f662cf..786e24375 100644 --- a/.github/workflows/prototest.yaml +++ b/.github/workflows/prototest.yaml @@ -5,16 +5,10 @@ on: branches: - "master" pull_request: - workflow_run: - workflows: [Pre-Builds Checks] - types: - - completed - jobs: proto-test: name: Protocol Test Config runs-on: ubuntu-22.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 120 strategy: fail-fast: true