chore: depr vendor and leverage nimble #9560
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: 90 | |
| name: build-${{ matrix.os }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Nim | |
| uses: iffy/install-nim@v5 | |
| with: | |
| version: binary:2.2.4 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Cache nimble packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.nimble/pkgs2 | |
| key: ${{ runner.os }}-nimble-${{ hashFiles('nimble.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nimble- | |
| - name: Make update | |
| run: make update | |
| - name: Debug nimble.paths | |
| run: | | |
| echo "=== Nim version ===" | |
| nim --version | |
| echo "=== nimble version ===" | |
| nimble --version | |
| echo "=== nimble.paths content ===" | |
| cat nimble.paths || echo "nimble.paths not found" | |
| echo "=== Check for empty paths ===" | |
| grep -n '""' nimble.paths || echo "No empty paths found" | |
| grep -n '^--path:$' nimble.paths || echo "No empty --path: entries" | |
| echo "=== Verify nimcrypto is in paths ===" | |
| grep -c nimcrypto nimble.paths || echo "WARNING: nimcrypto not found in nimble.paths!" | |
| - name: Build binaries | |
| run: make V=1 QUICK_AND_DIRTY_COMPILER=1 USE_LIBBACKTRACE=0 all | |
| 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: 90 | |
| name: test-${{ matrix.os }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install Nim | |
| uses: iffy/install-nim@v5 | |
| with: | |
| version: binary:2.2.4 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Cache nimble packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.nimble/pkgs2 | |
| key: ${{ runner.os }}-nimble-${{ hashFiles('nimble.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nimble- | |
| - name: Make update | |
| run: make update | |
| - name: Verify nimble.paths | |
| run: | | |
| echo "=== nimble.paths content ===" | |
| cat nimble.paths || { echo "ERROR: nimble.paths not found!"; exit 1; } | |
| echo "=== Verify critical dependencies ===" | |
| grep -q nimcrypto nimble.paths || { echo "ERROR: nimcrypto not in paths!"; exit 1; } | |
| grep -q libp2p nimble.paths || { echo "ERROR: libp2p not in paths!"; exit 1; } | |
| - 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 | |
| # Disable march=native on Linux to avoid potential nimcrypto SHA2 issues | |
| export NIMFLAGS="--colors:off -d:chronicles_colors:none -d:disableMarchNative" | |
| else | |
| export NIMFLAGS="--colors:off -d:chronicles_colors:none" | |
| fi | |
| export MAKEFLAGS="-j1" | |
| 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: ./.github/workflows/container-image.yml | |
| secrets: inherit | |
| nwaku-nwaku-interop-tests: | |
| needs: build-docker-image | |
| uses: logos-messaging/logos-delivery-interop-tests/.github/workflows/nim_waku_PR.yml@SMOKE_TEST_STABLE | |
| with: | |
| node_nwaku: ${{ needs.build-docker-image.outputs.image }} | |
| secrets: inherit | |
| js-waku-node: | |
| needs: build-docker-image | |
| uses: logos-messaging/logos-delivery-js/.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: logos-messaging/logos-delivery-js/.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: Install Nim | |
| uses: iffy/install-nim@v5 | |
| with: | |
| version: binary:2.2.4 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - 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 |