Skip to content

[PE-1346] Additional intent order testing #1940

[PE-1346] Additional intent order testing

[PE-1346] Additional intent order testing #1940

Workflow file for this run

name: Automated Tests and Linting
on:
push:
branches: [main]
pull_request:
branches:
- main
- v2.1
- v2.1.1
- v2.2
- v2.3
workflow_dispatch:
env:
CI: true
PARSER_BROKEN: false # set to true if Solidity parsing is currently broken, this will skip Linting and Coverage
concurrency:
group: build-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: 18.19
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
if: ${{ env.PARSER_BROKEN != 'true' }}
- name: lint
run: yarn workspaces run lint
if: ${{ env.PARSER_BROKEN != 'true' }}
# [CORE]
core-unit-test:
name: '[Core] Unit Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
run: |
yarn workspace @equilibria/perennial-v2 run ${{ env.PARSER_BROKEN != 'true' && 'coverage' || 'test' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: core_unit_test_coverage
path: ./packages/perennial/coverage/lcov.info
- name: '[Core] Unit Test Code Coverage Report'
uses: romeovs/lcov-reporter-action@v0.3.1
with:
title: '[Core] Unit Test Coverage Report'
lcov-file: ./packages/perennial/coverage/lcov.info
github-token: ${{ secrets.GITHUB_TOKEN }}
delete-old-comments: true
if: ${{ github.event_name == 'pull_request' && env.PARSER_BROKEN != 'true' }}
core-integration-test:
name: '[Core] Integration Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
MAINNET_NODE_URL: ${{ secrets.MAINNET_NODE_URL }}
run: |
yarn workspace @equilibria/perennial-v2 run ${{ env.PARSER_BROKEN != 'true' && 'coverage:integration' || 'test:integration' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: core_integration_test_coverage
path: ./packages/perennial/coverage/lcov.info
- name: '[Core] Integration Test Code Coverage Report'
uses: romeovs/lcov-reporter-action@v0.3.1
with:
title: '[Core] Integration Test Coverage Report'
lcov-file: ./packages/perennial/coverage/lcov.info
github-token: ${{ secrets.GITHUB_TOKEN }}
delete-old-comments: true
if: ${{ github.event_name == 'pull_request' && env.PARSER_BROKEN != 'true' }}
core-combined-test:
name: '[Core] Combined Tests w/ Coverage'
runs-on: ubuntu-latest
needs: [core-unit-test, core-integration-test]
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- name: Download unit test coverage file
uses: actions/download-artifact@v3
with:
name: core_unit_test_coverage
path: core_unit_test_coverage
- name: Download integration test coverage file
uses: actions/download-artifact@v3
with:
name: core_integration_test_coverage
path: core_integration_test_coverage
- name: Install lcov
run: sudo apt-get update && sudo apt-get install lcov
- name: Combine unit and integration test coverage
run: lcov -a core_unit_test_coverage/lcov.info -a core_integration_test_coverage/lcov.info --output-file core_combined_coverage.info
- name: '[Core] Combined Test Code Coverage Report'
uses: romeovs/lcov-reporter-action@v0.3.1
with:
title: '[Core] Combined Test Coverage Report'
lcov-file: core_combined_coverage.info
github-token: ${{ secrets.GITHUB_TOKEN }}
delete-old-comments: true
if: ${{ github.event_name == 'pull_request' && env.PARSER_BROKEN != 'true' }}
# [ACCOUNT]
account-unit-test:
name: '[Collateral Accounts] Unit Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
run: |
yarn workspace @equilibria/perennial-v2-account run ${{ env.PARSER_BROKEN != 'true' && 'coverage' || 'test' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: account_unit_test_coverage
path: ./packages/perennial-account/coverage/lcov.info
account-integration-test:
name: '[Collateral Accounts] Integration Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
ARBITRUM_NODE_URL: ${{ secrets.ARBITRUM_NODE_URL }}
run: |
yarn workspace @equilibria/perennial-v2-account run ${{ env.PARSER_BROKEN != 'true' && 'coverage:integration' || 'test:integration' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: account_integration_test_coverage
path: ./packages/perennial-account/coverage/lcov.info
# [ORACLE]
oracle-unit-test:
name: '[Oracle] Unit Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
run: |
yarn workspace @equilibria/perennial-v2-oracle run ${{ env.PARSER_BROKEN != 'true' && 'coverage' || 'test' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: oracle_unit_test_coverage
path: ./packages/perennial-oracle/coverage/lcov.info
oracle-integration-test:
name: '[Oracle] Integration Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
MAINNET_NODE_URL: ${{ secrets.MAINNET_NODE_URL }}
run: |
yarn workspace @equilibria/perennial-v2-oracle run ${{ env.PARSER_BROKEN != 'true' && 'coverage:integration' || 'test:integration' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: oracle_integration_test_coverage
path: ./packages/perennial-oracle/coverage/lcov.info
oracle-integrationSepolia-test:
name: '[Oracle] Sepolia Integration Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
ARBITRUM_SEPOLIA_NODE_URL: ${{ secrets.ARBITRUM_SEPOLIA_NODE_URL }}
run: |
yarn workspace @equilibria/perennial-v2-oracle run ${{ env.PARSER_BROKEN != 'true' && 'coverage:integrationSepolia' || 'test:integrationSepolia' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: oracle_sepolia_integration_test_coverage
path: ./packages/perennial-oracle/coverage/lcov.info
# [ORDER]
order-unit-test:
name: '[Trigger Orders] Unit Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
run: |
yarn workspace @equilibria/perennial-v2-order run ${{ env.PARSER_BROKEN != 'true' && 'coverage' || 'test' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: order_unit_test_coverage
path: ./packages/perennial-order/coverage/lcov.info
order-integration-test:
name: '[Trigger Orders] Integration Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
ARBITRUM_NODE_URL: ${{ secrets.ARBITRUM_NODE_URL }}
run: |
yarn workspace @equilibria/perennial-v2-order run ${{ env.PARSER_BROKEN != 'true' && 'coverage:integration' || 'test:integration' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: order_integration_test_coverage
path: ./packages/perennial-order/coverage/lcov.info
# [VAULT]
vault-unit-test:
name: '[Vault] Unit Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
run: |
yarn workspace @equilibria/perennial-v2-vault run ${{ env.PARSER_BROKEN != 'true' && 'coverage' || 'test' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: vault_unit_test_coverage
path: ./packages/perennial-vault/coverage/lcov.info
vault-integration-test:
name: '[Vault] Integration Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
MAINNET_NODE_URL: ${{ secrets.MAINNET_NODE_URL }}
run: |
yarn workspace @equilibria/perennial-v2-vault run ${{ env.PARSER_BROKEN != 'true' && 'coverage:integration' || 'test:integration' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: vault_integration_test_coverage
path: ./packages/perennial-vault/coverage/lcov.info
# [EXTENSIONS]
extensions-unit-test:
name: '[Extensions] Unit Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
run: |
yarn workspace @equilibria/perennial-v2-extensions run ${{ env.PARSER_BROKEN != 'true' && 'coverage' || 'test' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: extensions_unit_test_coverage
path: ./packages/perennial-extensions/coverage/lcov.info
extensions-integration-test:
name: '[Extensions] Integration Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
MAINNET_NODE_URL: ${{ secrets.MAINNET_NODE_URL }}
run: |
yarn workspace @equilibria/perennial-v2-extensions run ${{ env.PARSER_BROKEN != 'true' && 'coverage:integration' || 'test:integration' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: extensions_integration_test_coverage
path: ./packages/perennial-extensions/coverage/lcov.info
# [VERIFIER]
verifier-unit-test:
name: '[Verifier] Unit Tests w/ Coverage'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- uses: actions/cache@v3
id: cache
with:
path: |
node_modules
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install
run: yarn --frozen-lockfile
- name: Compile
run: yarn workspaces run compile # compile all packages
- name: Run tests
env:
MOCHA_REPORTER: dot
MOCHA_RETRY_COUNT: 2
run: |
yarn workspace @equilibria/perennial-v2-verifier run ${{ env.PARSER_BROKEN != 'true' && 'coverage' || 'test' }}
- name: Upload lcov file
uses: actions/upload-artifact@v3
with:
name: verifier_unit_test_coverage
path: ./packages/perennial-verifier/coverage/lcov.info
# [PERIPHERY UNIT COVERAGE]
periphery-unit-test-coverage:
name: 'Periphery Unit Tests Coverage'
runs-on: ubuntu-latest
needs: [account-unit-test, oracle-unit-test, order-unit-test, vault-unit-test, extensions-unit-test, verifier-unit-test]
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- name: Download collateral account unit test coverage file
uses: actions/download-artifact@v3
with:
name: account_unit_test_coverage
path: account_unit_test_coverage
- name: Download oracle unit test coverage file
uses: actions/download-artifact@v3
with:
name: oracle_unit_test_coverage
path: oracle_unit_test_coverage
- name: Download order unit test coverage file
uses: actions/download-artifact@v3
with:
name: order_unit_test_coverage
path: order_unit_test_coverage
- name: Download vault unit test coverage file
uses: actions/download-artifact@v3
with:
name: vault_unit_test_coverage
path: vault_unit_test_coverage
- name: Download extensions unit test coverage file
uses: actions/download-artifact@v3
with:
name: extensions_unit_test_coverage
path: extensions_unit_test_coverage
- name: Download verifier unit test coverage file
uses: actions/download-artifact@v3
with:
name: verifier_unit_test_coverage
path: verifier_unit_test_coverage
- name: Install lcov
run: sudo apt-get update && sudo apt-get install lcov
- name: Combine unit test coverage
run: lcov -a account_unit_test_coverage/lcov.info
-a oracle_unit_test_coverage/lcov.info
-a order_unit_test_coverage/lcov.info
-a vault_unit_test_coverage/lcov.info
-a extensions_unit_test_coverage/lcov.info
-a verifier_unit_test_coverage/lcov.info
--output-file periphery_unit_coverage.info
- name: Upload combined unit test lcov file
uses: actions/upload-artifact@v3
with:
name: periphery_unit_coverage
path: periphery_unit_coverage.info
- name: 'Periphery Unit Test Code Coverage Report'
uses: romeovs/lcov-reporter-action@v0.3.1
with:
title: '[Periphery] Unit Test Coverage Report'
lcov-file: periphery_unit_coverage.info
github-token: ${{ secrets.GITHUB_TOKEN }}
delete-old-comments: true
if: ${{ github.event_name == 'pull_request' && env.PARSER_BROKEN != 'true' }}
# [PERIPHERY INTEGRATION COVERAGE]
periphery-integration-test-coverage:
name: 'Periphery Integration Tests Coverage'
runs-on: ubuntu-latest
needs:
[
account-integration-test,
oracle-integration-test,
order-integration-test,
oracle-integrationSepolia-test,
vault-integration-test,
extensions-integration-test,
]
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- name: Download collateral account integration test coverage file
uses: actions/download-artifact@v3
with:
name: account_integration_test_coverage
path: account_integration_test_coverage
- name: Download oracle integration test coverage file
uses: actions/download-artifact@v3
with:
name: oracle_integration_test_coverage
path: oracle_integration_test_coverage
- name: Download oracle sepolia integration test coverage file
uses: actions/download-artifact@v3
with:
name: oracle_sepolia_integration_test_coverage
path: oracle_sepolia_integration_test_coverage
- name: Download order integration test coverage file
uses: actions/download-artifact@v3
with:
name: order_integration_test_coverage
path: order_integration_test_coverage
- name: Download vault integration test coverage file
uses: actions/download-artifact@v3
with:
name: vault_integration_test_coverage
path: vault_integration_test_coverage
- name: Download extensions integration test coverage file
uses: actions/download-artifact@v3
with:
name: extensions_integration_test_coverage
path: extensions_integration_test_coverage
- name: Install lcov
run: sudo apt-get update && sudo apt-get install lcov
- name: Combine integration test coverage
run: lcov -a account_integration_test_coverage/lcov.info
-a oracle_integration_test_coverage/lcov.info
-a oracle_sepolia_integration_test_coverage/lcov.info
-a order_integration_test_coverage/lcov.info
-a vault_integration_test_coverage/lcov.info
-a extensions_integration_test_coverage/lcov.info
--output-file periphery_integration_coverage.info
- name: Upload combined integration test lcov file
uses: actions/upload-artifact@v3
with:
name: periphery_integration_coverage
path: periphery_integration_coverage.info
- name: 'Periphery Integration Test Code Coverage Report'
uses: romeovs/lcov-reporter-action@v0.3.1
with:
title: '[Periphery] Integration Test Coverage Report'
lcov-file: periphery_integration_coverage.info
github-token: ${{ secrets.GITHUB_TOKEN }}
delete-old-comments: true
if: ${{ github.event_name == 'pull_request' && env.PARSER_BROKEN != 'true' }}
# [PERIPHERY COMBINED COVERAGE]
Periphery-test-coverage:
name: 'Periphery Combined Tests Coverage'
runs-on: ubuntu-latest
needs: [periphery-unit-test-coverage, periphery-integration-test-coverage]
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- uses: actions/checkout@v3
- name: Download periphery unit test coverage file
uses: actions/download-artifact@v3
with:
name: periphery_unit_coverage
path: periphery_unit_coverage
- name: Download periphery integration test coverage file
uses: actions/download-artifact@v3
with:
name: periphery_integration_coverage
path: periphery_integration_coverage
- name: Install lcov
run: sudo apt-get update && sudo apt-get install lcov
- name: Combine test coverage
run: lcov -a periphery_unit_coverage/periphery_unit_coverage.info -a periphery_integration_coverage/periphery_integration_coverage.info --output-file combined_coverage.info
- name: 'Periphery Combined Test Code Coverage Report'
uses: romeovs/lcov-reporter-action@v0.3.1
with:
title: '[Periphery] Combined Test Coverage Report'
lcov-file: combined_coverage.info
github-token: ${{ secrets.GITHUB_TOKEN }}
delete-old-comments: true
if: ${{ github.event_name == 'pull_request' && env.PARSER_BROKEN != 'true' }}