From c26bbc6b55a0ec332d11de70decf7cadcc99e6aa Mon Sep 17 00:00:00 2001 From: npty Date: Mon, 8 Jul 2024 16:12:08 +0700 Subject: [PATCH] feat: break test workflow --- .github/workflows/test-aptos.yml | 51 ++++++++++++++++++++++ .github/workflows/test-core.yml | 51 ++++++++++++++++++++++ .github/workflows/test-multiversex.yml | 59 ++++++++++++++++++++++++++ .github/workflows/test-sui.yml | 54 +++++++++++++++++++++++ 4 files changed, 215 insertions(+) create mode 100644 .github/workflows/test-aptos.yml create mode 100644 .github/workflows/test-core.yml create mode 100644 .github/workflows/test-multiversex.yml create mode 100644 .github/workflows/test-sui.yml diff --git a/.github/workflows/test-aptos.yml b/.github/workflows/test-aptos.yml new file mode 100644 index 0000000..12dfdb8 --- /dev/null +++ b/.github/workflows/test-aptos.yml @@ -0,0 +1,51 @@ +name: Run Tests for Aptos + +on: pull_request + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + arch: [amd64] + steps: + - name: Download and Install Aptos Binary + run: | + wget --no-check-certificate https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v1.0.4/aptos-cli-1.0.4-Ubuntu-22.04-x86_64.zip + unzip aptos-cli-1.0.4-Ubuntu-22.04-x86_64.zip + sudo mv aptos /usr/local/bin + + - name: Cleanup + run: rm -rf target aptos-cli-1.0.4-Ubuntu-22.04-x86_64.zip + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Cache node_modules + uses: actions/cache@v4 + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Test + timeout-minutes: 15 + run: | + nohup sh -c "aptos node run-local-testnet --with-faucet" > nohup.out 2> nohup.err < /dev/null & + nohup sh -c "anvil -p 8545" > anvil1.out 2>&1 & + sleep 30 + npm run test:aptos diff --git a/.github/workflows/test-core.yml b/.github/workflows/test-core.yml new file mode 100644 index 0000000..e1c64ce --- /dev/null +++ b/.github/workflows/test-core.yml @@ -0,0 +1,51 @@ +name: Run Tests for Core + +on: pull_request + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + arch: [amd64] + # Elasticsearch used by MultiversX test + services: + elasticsearch: + image: "docker.elastic.co/elasticsearch/elasticsearch:8.12.0" + env: + discovery.type: single-node + xpack.security.enabled: false + ports: + - "9200:9200" + steps: + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Test + timeout-minutes: 15 + run: | + nohup sh -c "anvil -p 8545" > anvil1.out 2>&1 & + nohup sh -c "anvil -p 8546" > anvil2.out 2>&1 & + sleep 30 + npm run test diff --git a/.github/workflows/test-multiversex.yml b/.github/workflows/test-multiversex.yml new file mode 100644 index 0000000..dbdfd41 --- /dev/null +++ b/.github/workflows/test-multiversex.yml @@ -0,0 +1,59 @@ +name: Run Tests for MultiVersX + +on: pull_request + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + arch: [amd64] + # Elasticsearch used by MultiversX test + services: + elasticsearch: + image: "docker.elastic.co/elasticsearch/elasticsearch:8.12.0" + env: + discovery.type: single-node + xpack.security.enabled: false + ports: + - "9200:9200" + steps: + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Download and Install Multiversx Binary + run: | + pip3 install multiversx-sdk-cli==v9.3.1 + mxpy localnet setup + cp -rf ./packages/axelar-local-dev-multiversx/external.toml ./localnet/validator00/config + cp -rf ./packages/axelar-local-dev-multiversx/external.toml ./localnet/validator01/config + cp -rf ./packages/axelar-local-dev-multiversx/external.toml ./localnet/validator02/config + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Test + timeout-minutes: 15 + run: | + nohup sh -c "mxpy localnet start" > nohup.out 2> nohup.err < /dev/null & + nohup sh -c "anvil -p 8545" > anvil1.out 2>&1 & + sleep 30 + npm run test:multiversx diff --git a/.github/workflows/test-sui.yml b/.github/workflows/test-sui.yml new file mode 100644 index 0000000..f534bd1 --- /dev/null +++ b/.github/workflows/test-sui.yml @@ -0,0 +1,54 @@ +name: Run Tests for Sui + +on: pull_request + +jobs: + test-sui: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] + arch: [amd64] + steps: + - name: Setup Dependencies for Sui Binary + run: sudo apt-get update && sudo apt-get install -y libpq-dev + + - name: Download and Install Sui Binary + run: | + wget https://github.com/MystenLabs/sui/releases/download/mainnet-v1.11.2/sui-mainnet-v1.11.2-ubuntu-x86_64.tgz + tar -xvf sui-mainnet-v1.11.2-ubuntu-x86_64.tgz + sudo mv ./target/release/sui-test-validator-ubuntu-x86_64 /usr/local/bin/sui-test-validator + sudo mv ./target/release/sui-ubuntu-x86_64 /usr/local/bin/sui + + - name: Cleanup + run: rm -rf target aptos-cli-1.0.4-Ubuntu-22.04-x86_64.zip sui-devnet-v1.7.0-ubuntu-x86_64.tgz + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: node_modules + key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }} + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Test + timeout-minutes: 15 + run: | + nohup sh -c "sui-test-validator" > nohup.out 2> nohup.err < /dev/null & + sleep 30 + npm run test:sui