From 046578e492ff3ee44c48b3a3bce6dc4e04729b1c Mon Sep 17 00:00:00 2001 From: Dimo99 Date: Thu, 29 Jun 2023 17:23:40 +0300 Subject: [PATCH] feat(ci): Split all tests to different jobs --- .github/workflows/ci.yml | 184 +++++++++++++++++++++++++++++++++++---- 1 file changed, 165 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1224e0b83..e11ec3cf2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,64 +14,216 @@ env: ETHERSCAN_API_KEY: '${{ secrets.ETHERSCAN_API_KEY }}' jobs: - Tests: + Setup: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: submodules: recursive - - uses: cachix/install-nix-action@v20 with: nix_path: nixpkgs=channel:nixos-22.11 install_url: https://releases.nixos.org/nix/nix-2.15.0/install - - uses: cachix/cachix-action@v12 with: name: nix-blockchain-development authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - name: Build Nix dev shell run: ./scripts/build-nix-shell.sh - - name: Install Node.js dependencies run: nix develop -c yarn install --immutable - - name: Install Node.js dependencies - run: nix develop -c yarn format:check + EOS_Relayer_Test: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Run Verifier in EOS - Relayer test run: nix develop -c yarn test './tests/eosLightClient/test-verifier-in-EOS-relay.ts' + Nim_Light_Client_Compiled_with_Emsctipten_Tests: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Run Nim Light Client compiled with emsctipten tests run: nix develop -c yarn test-emcc './tests/test-nim-to-wasm.ts' 'test-nim-light-client.ts' + Nim_Light_Client_Clang_Test: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Run Nim Light Client compiled with clang tests run: nix develop -c yarn test './tests/test-nim-to-wasm.ts' 'test-nim-light-client.ts' + Nim_Groth16_Verifier_Tests: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Run Nim groth16 verifier tests run: nix develop -c make test-groth16-verifier + Run_Light_Client_In_Cosmos_Test: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Run Light Client in Cosmos test run: nix develop -c yarn test './tests/cosmosLightClient/test-nim-light-client-in-cosmos.ts' + Run_Verifier_In_Cosmos_Test: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Run Verifier in Cosmos test run: nix develop -c yarn test './tests/cosmosLightClient/test-verifier-in-cosmos.ts' + Run_Circom_Tests: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Run circom tests run: nix develop -c make test-circom-circuits + Run_Verifier_In_Cosmos_Relay_Tests: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Run Verifier in Cosmos - Relayer test run: nix develop -c yarn test './tests/cosmosLightClient/test-verifier-in-cosmos-relay.ts' - # - name: Run Verifier in EOS test - # run: nix develop -c yarn test './tests/eosLightClient/test-verifier-in-EOS.ts' + Run_Verify_Given_Proof: + needs: Setup + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-22.11 + install_url: https://releases.nixos.org/nix/nix-2.15.0/install + + - uses: cachix/cachix-action@v12 + with: + name: nix-blockchain-development + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Run Verify given proof - test using bncurve and constantine run: nix develop -c nim c -r 'tests/verify_proof/verify_given_proof_test.nim' - SolidityVerifierTests: - needs: Tests + Solidity_Verifier_Tests: + needs: Setup runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -88,14 +240,11 @@ jobs: name: nix-blockchain-development authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - name: Install Node.js dependencies - run: nix develop -c yarn install --immutable - - name: Run Solidity verifier tests run: nix develop -c make evm-simulation - OneShotSyncingSimulation: - needs: Tests + OneShot_Syncing_Simulation: + needs: Setup runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -112,8 +261,5 @@ jobs: name: nix-blockchain-development authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - name: Install Node.js dependencies - run: nix develop -c yarn install --immutable - - name: Run one shot syncing simulation run: nix develop -c make one-shot-syncing-simulation