diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml new file mode 100644 index 00000000..74d64e44 --- /dev/null +++ b/.github/actions/setup/action.yml @@ -0,0 +1,20 @@ +name: Setup + +runs: + using: composite + steps: + - name: Install node + uses: actions/setup-node@v3 + with: + node-version: 16 + cache: yarn + - name: Cache + uses: actions/cache@v2 + id: cache + with: + path: '**/node_modules' + key: yarn-v1-${{ hashFiles('**/yarn.lock') }} + - name: Install + if: steps.cache.outputs.cache-hit != 'true' + shell: bash + run: yarn --prefer-offline \ No newline at end of file diff --git a/.github/scripts/setup-hardhat-config.sh b/.github/scripts/setup-hardhat-config.sh new file mode 100755 index 00000000..2ad588e4 --- /dev/null +++ b/.github/scripts/setup-hardhat-config.sh @@ -0,0 +1,28 @@ +#!/bin/sh +MAINNET_URL="$1" +POLYGON_URL="$2" +OPTIMISM_URL="$3" +ARBITRUM_URL="$4" +GNOSIS_URL="$5" +BSC_URL="$6" +FANTOM_URL="$7" +AVALANCHE_URL="$8" + +set -o errexit + +mkdir -p $HOME/.hardhat + +echo " +{ + \"networks\": { + \"mainnet\": { \"url\": \"${MAINNET_URL}\" }, + \"polygon\": { \"url\": \"${POLYGON_URL}\" }, + \"optimism\": { \"url\": \"${OPTIMISM_URL}\" }, + \"arbitrum\": { \"url\": \"${ARBITRUM_URL}\" }, + \"gnosis\": { \"url\": \"${GNOSIS_URL}\" }, + \"bsc\": { \"url\": \"${BSC_URL}\" }, + \"fantom\": { \"url\": \"${FANTOM_URL}\" }, + \"avalanche\": { \"url\": \"${AVALANCHE_URL}\" } + } +} +" > $HOME/.hardhat/networks.mimic.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..821d2534 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,22 @@ +name: Build + +env: + CI: true + +on: + push: + branches: "*" + pull_request: + branches: "*" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Build + run: yarn build + diff --git a/.github/workflows/ci-authorizer.yml b/.github/workflows/ci-authorizer.yml new file mode 100644 index 00000000..adadcdcb --- /dev/null +++ b/.github/workflows/ci-authorizer.yml @@ -0,0 +1,35 @@ +name: Authorizer CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/authorizer/** + pull_request: + branches: "*" + paths: + - packages/authorizer/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-authorizer lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-authorizer test diff --git a/.github/workflows/ci-deployer.yml b/.github/workflows/ci-deployer.yml new file mode 100644 index 00000000..65ebc7a0 --- /dev/null +++ b/.github/workflows/ci-deployer.yml @@ -0,0 +1,35 @@ +name: Deployer CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/deployer/** + pull_request: + branches: "*" + paths: + - packages/deployer/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-deployer lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-deployer test diff --git a/.github/workflows/ci-fee-controller.yml b/.github/workflows/ci-fee-controller.yml new file mode 100644 index 00000000..25fffe55 --- /dev/null +++ b/.github/workflows/ci-fee-controller.yml @@ -0,0 +1,35 @@ +name: Fee Controller CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/fee-controller/** + pull_request: + branches: "*" + paths: + - packages/fee-controller/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-fee-controller lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-fee-controller test diff --git a/.github/workflows/ci-helpers.yml b/.github/workflows/ci-helpers.yml new file mode 100644 index 00000000..ff9407a8 --- /dev/null +++ b/.github/workflows/ci-helpers.yml @@ -0,0 +1,35 @@ +name: Helpers CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/helpers/** + pull_request: + branches: "*" + paths: + - packages/helpers/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-helpers lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-helpers test diff --git a/.github/workflows/ci-price-oracle.yml b/.github/workflows/ci-price-oracle.yml new file mode 100644 index 00000000..d03e7e7d --- /dev/null +++ b/.github/workflows/ci-price-oracle.yml @@ -0,0 +1,47 @@ +name: Price Oracle CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/price-oracle/** + pull_request: + branches: "*" + paths: + - packages/price-oracle/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-price-oracle lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-price-oracle test + + integration: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test mainnet + run: yarn workspace @mimic-fi/v3-price-oracle test:mainnet + - name: Test polygon + run: yarn workspace @mimic-fi/v3-price-oracle test:polygon diff --git a/.github/workflows/ci-registry.yml b/.github/workflows/ci-registry.yml new file mode 100644 index 00000000..6570a7aa --- /dev/null +++ b/.github/workflows/ci-registry.yml @@ -0,0 +1,35 @@ +name: Registry CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/registry/** + pull_request: + branches: "*" + paths: + - packages/registry/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-registry lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-registry test diff --git a/.github/workflows/ci-smart-vault.yml b/.github/workflows/ci-smart-vault.yml new file mode 100644 index 00000000..5c2a4735 --- /dev/null +++ b/.github/workflows/ci-smart-vault.yml @@ -0,0 +1,35 @@ +name: Smart Vault CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/smart-vault/** + pull_request: + branches: "*" + paths: + - packages/smart-vault/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-smart-vault lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-smart-vault test diff --git a/.github/workflows/ci-tasks.yml b/.github/workflows/ci-tasks.yml new file mode 100644 index 00000000..d11ed515 --- /dev/null +++ b/.github/workflows/ci-tasks.yml @@ -0,0 +1,35 @@ +name: Tasks CI + +env: + CI: true + +on: + push: + branches: "*" + paths: + - packages/tasks/** + pull_request: + branches: "*" + paths: + - packages/tasks/** + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Lint + run: yarn workspace @mimic-fi/v3-tasks lint + + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up environment + uses: ./.github/actions/setup + - name: Test + run: yarn workspace @mimic-fi/v3-tasks test