From 779ec120ea6f9283dfed5e2d0a32d46cba4ae8e8 Mon Sep 17 00:00:00 2001 From: Aaryamann Challani <43716372+rymnc@users.noreply.github.com> Date: Fri, 25 Nov 2022 16:03:19 +0530 Subject: [PATCH] feat(ci): run experimental features in diff ci (#1410) * feat(ci): run experimental features in diff ci * chore(ci): add EXPERIMENTAL flag * chore(makefile): make compilation cleaner * fix(rln-relay): remove onchain_rln flag * fix(makefile): remove experimental_rln flag Co-authored-by: Lorenzo Delgado --- .../workflows/test2-experimental-ignore.yml | 41 +++++++++++ .github/workflows/test2-experimental.yml | 71 +++++++++++++++++++ Makefile | 19 ++--- tests/all_tests_v2.nim | 5 +- 4 files changed, 120 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/test2-experimental-ignore.yml create mode 100644 .github/workflows/test2-experimental.yml diff --git a/.github/workflows/test2-experimental-ignore.yml b/.github/workflows/test2-experimental-ignore.yml new file mode 100644 index 000000000..779180947 --- /dev/null +++ b/.github/workflows/test2-experimental-ignore.yml @@ -0,0 +1,41 @@ +name: test2-experimental + +on: + pull_request: + paths: + - 'waku/v1/**' + - 'tests/all_tests_v1.nim' + - 'tests/v1/**' + + - 'waku/whisper/**' + - 'tests/whisper/**' + - 'tests/all_tests_whisper.nim' + + - 'ci/**' + - 'metrics/**' + - 'docs/**' + - '**.md' + push: + branches: + - master + paths: + - 'ci/**' + - 'metrics/**' + - 'docs/**' + - '**.md' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + + +jobs: + test: + strategy: + matrix: + platform: [ubuntu-latest, macos-latest] + runs-on: ${{ matrix.platform }} + + name: ${{ github.workflow }}-${{ matrix.platform }} + steps: + - run: 'echo "No test required"' diff --git a/.github/workflows/test2-experimental.yml b/.github/workflows/test2-experimental.yml new file mode 100644 index 000000000..e46db0c27 --- /dev/null +++ b/.github/workflows/test2-experimental.yml @@ -0,0 +1,71 @@ +name: test2-experimental + +on: + pull_request: + paths-ignore: + - 'waku/v1/**' + - 'tests/all_tests_v1.nim' + - 'tests/v1/**' + + - 'waku/whisper/**' + - 'tests/whisper/**' + - 'tests/all_tests_whisper.nim' + + - 'ci/**' + - 'metrics/**' + - 'docs/**' + - '**.md' + push: + branches: + - master + paths-ignore: + - 'ci/**' + - 'metrics/**' + - 'docs/**' + - '**.md' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + + +jobs: + test: + strategy: + matrix: + env: + - NPROC: 2 + MAKEFLAGS: "-j${NPROC}" + NIMFLAGS: "--parallelBuild:${NPROC}" + EXPERIMENTAL: "true" + platform: [ubuntu-latest, macos-latest] + runs-on: ${{ matrix.platform }} + env: ${{ matrix.env }} + timeout-minutes: 60 + + name: ${{ github.workflow }}-${{ matrix.platform }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + # We need to do this because of how github cache works + # I am not sure we can move the cache file, so if we do not do this + # make update breaks because the cached compiler is there where the submodules + # are meant to go. + - name: Submodules + run: git submodule update --init --recursive + + - name: Cache nim + uses: actions/cache@v3 + with: + path: vendor/nimbus-build-system/vendor/Nim/bin + key: ${{ runner.os }}-${{ matrix.env.NPROC }}-nim-${{ hashFiles('.gitmodules') }} + + - name: Update dependencies + run: make V=1 update + + - name: Build V2 binaries + run: make LOG_LEVEL=TRACE v2 + + - name: Run V2 Tests + run: make test2 diff --git a/Makefile b/Makefile index 9c3b84ce4..2e9bb1464 100644 --- a/Makefile +++ b/Makefile @@ -204,26 +204,19 @@ docs: | build deps ## RLN -# control rln code compilation -ifeq ($(RLN), true) -NIM_PARAMS := $(NIM_PARAMS) -d:rln -else ifeq ($(CI), true) -NIM_PARAMS := $(NIM_PARAMS) -d:rln +# Experimental flag for all experimental features +ifeq ($(EXPERIMENTAL), true) +$(eval RLN := true) endif -# control compilation of rln tests that require on chain interaction -ifeq ($(ONCHAIN_RLN), true) -NIM_PARAMS := $(NIM_PARAMS) -d:onchain_rln -else ifeq ($(CI), true) -NIM_PARAMS := $(NIM_PARAMS) -d:onchain_rln +# control rln code compilation +ifeq ($(RLN), true) + NIM_PARAMS := $(NIM_PARAMS) -d:rln endif rlnlib: ifeq ($(RLN), true) cargo build --manifest-path vendor/zerokit/rln/Cargo.toml --release -# Enable zerokit rln in CI -else ifeq ($(CI), true) - cargo build --manifest-path vendor/zerokit/rln/Cargo.toml --release endif # clean the rln build (forces recompile of old crates on next build) diff --git a/tests/all_tests_v2.nim b/tests/all_tests_v2.nim index 979992a16..f01832b2b 100644 --- a/tests/all_tests_v2.nim +++ b/tests/all_tests_v2.nim @@ -61,9 +61,8 @@ import when defined(rln): import ./v2/test_waku_rln_relay, - ./v2/test_wakunode_rln_relay - when defined(onchain_rln): - import ./v2/test_waku_rln_relay_onchain + ./v2/test_wakunode_rln_relay, + ./v2/test_waku_rln_relay_onchain when defined(waku_exp_store_resume): # TODO: Review store resume test cases (#1282)