auto-bump nim-libp2p #8761
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - master | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| NPROC: 2 | |
| MAKEFLAGS: "-j${NPROC}" | |
| NIMFLAGS: "--parallelBuild:${NPROC} --colors:off -d:chronicles_colors:none" | |
| jobs: | |
| changes: # changes detection | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| pull-requests: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| name: Checkout code | |
| id: checkout | |
| - uses: dorny/paths-filter@v2 | |
| id: filter | |
| with: | |
| filters: | | |
| common: | |
| - '.github/workflows/**' | |
| - 'vendor/**' | |
| - 'Makefile' | |
| - 'waku.nimble' | |
| - 'library/**' | |
| v2: | |
| - 'waku/**' | |
| - 'apps/**' | |
| - 'tools/**' | |
| - 'tests/all_tests_v2.nim' | |
| - 'tests/**' | |
| docker: | |
| - 'docker/**' | |
| outputs: | |
| common: ${{ steps.filter.outputs.common }} | |
| v2: ${{ steps.filter.outputs.v2 }} | |
| docker: ${{ steps.filter.outputs.docker }} | |
| build: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.v2 == 'true' || needs.changes.outputs.common == 'true' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, macos-15] | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 45 | |
| name: build-${{ matrix.os }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Get submodules hash | |
| id: submodules | |
| run: | | |
| echo "hash=$(git submodule status | awk '{print $1}' | sort | shasum -a 256 | sed 's/[ -]*//g')" >> $GITHUB_OUTPUT | |
| - name: Cache submodules | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| vendor/ | |
| .git/modules | |
| key: ${{ runner.os }}-vendor-modules-${{ steps.submodules.outputs.hash }} | |
| - name: Build binaries | |
| run: make V=1 QUICK_AND_DIRTY_COMPILER=1 all tools | |
| build-windows: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.v2 == 'true' || needs.changes.outputs.common == 'true' }} | |
| uses: ./.github/workflows/windows-build.yml | |
| with: | |
| branch: ${{ github.ref }} | |
| test: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.v2 == 'true' || needs.changes.outputs.common == 'true' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-22.04, macos-15] | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 45 | |
| name: test-${{ matrix.os }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Get submodules hash | |
| id: submodules | |
| run: | | |
| echo "hash=$(git submodule status | awk '{print $1}' | sort | shasum -a 256 | sed 's/[ -]*//g')" >> $GITHUB_OUTPUT | |
| - name: Cache submodules | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| vendor/ | |
| .git/modules | |
| key: ${{ runner.os }}-vendor-modules-${{ steps.submodules.outputs.hash }} | |
| - name: Run tests | |
| run: | | |
| postgres_enabled=0 | |
| if [ ${{ runner.os }} == "Linux" ]; then | |
| sudo docker run --rm -d -e POSTGRES_PASSWORD=test123 -p 5432:5432 postgres:15.4-alpine3.18 | |
| postgres_enabled=1 | |
| fi | |
| export MAKEFLAGS="-j1" | |
| export NIMFLAGS="--colors:off -d:chronicles_colors:none" | |
| export USE_LIBBACKTRACE=0 | |
| make V=1 LOG_LEVEL=DEBUG QUICK_AND_DIRTY_COMPILER=1 POSTGRES=$postgres_enabled test | |
| make V=1 LOG_LEVEL=DEBUG QUICK_AND_DIRTY_COMPILER=1 POSTGRES=$postgres_enabled testwakunode2 | |
| build-docker-image: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.v2 == 'true' || needs.changes.outputs.common == 'true' || needs.changes.outputs.docker == 'true' }} | |
| uses: waku-org/nwaku/.github/workflows/container-image.yml@master | |
| secrets: inherit | |
| nwaku-nwaku-interop-tests: | |
| needs: build-docker-image | |
| uses: waku-org/waku-interop-tests/.github/workflows/nim_waku_PR.yml@SMOKE_TEST_0.0.1 | |
| with: | |
| node_nwaku: ${{ needs.build-docker-image.outputs.image }} | |
| secrets: inherit | |
| js-waku-node: | |
| needs: build-docker-image | |
| uses: waku-org/js-waku/.github/workflows/test-node.yml@master | |
| with: | |
| nim_wakunode_image: ${{ needs.build-docker-image.outputs.image }} | |
| test_type: node | |
| js-waku-node-optional: | |
| needs: build-docker-image | |
| uses: waku-org/js-waku/.github/workflows/test-node.yml@master | |
| with: | |
| nim_wakunode_image: ${{ needs.build-docker-image.outputs.image }} | |
| test_type: node-optional | |
| lint: | |
| name: "Lint" | |
| runs-on: ubuntu-22.04 | |
| needs: build | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Get submodules hash | |
| id: submodules | |
| run: | | |
| echo "hash=$(git submodule status | awk '{print $1}' | sort | shasum -a 256 | sed 's/[ -]*//g')" >> $GITHUB_OUTPUT | |
| - name: Cache submodules | |
| uses: actions/cache@v3 | |
| with: | |
| path: | | |
| vendor/ | |
| .git/modules | |
| key: ${{ runner.os }}-vendor-modules-${{ steps.submodules.outputs.hash }} | |
| - name: Build nph | |
| run: | | |
| make build-nph | |
| - name: Check nph formatting | |
| run: | | |
| shopt -s extglob # Enable extended globbing | |
| NPH=$(make print-nph-path) | |
| echo "using nph at ${NPH}" | |
| "${NPH}" examples waku tests tools apps *.@(nim|nims|nimble) | |
| git diff --exit-code |