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..0b7bb0df --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,35 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-authorizer.yml b/.github/workflows/ci-authorizer.yml new file mode 100644 index 00000000..e8a95bfc --- /dev/null +++ b/.github/workflows/ci-authorizer.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-deployer.yml b/.github/workflows/ci-deployer.yml new file mode 100644 index 00000000..f4065b5f --- /dev/null +++ b/.github/workflows/ci-deployer.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-fee-controller.yml b/.github/workflows/ci-fee-controller.yml new file mode 100644 index 00000000..b2b2b9ca --- /dev/null +++ b/.github/workflows/ci-fee-controller.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-helpers.yml b/.github/workflows/ci-helpers.yml new file mode 100644 index 00000000..53aaf9bb --- /dev/null +++ b/.github/workflows/ci-helpers.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-price-oracle.yml b/.github/workflows/ci-price-oracle.yml new file mode 100644 index 00000000..5af16a5b --- /dev/null +++ b/.github/workflows/ci-price-oracle.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-registry.yml b/.github/workflows/ci-registry.yml new file mode 100644 index 00000000..d6191ae3 --- /dev/null +++ b/.github/workflows/ci-registry.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-smart-vault.yml b/.github/workflows/ci-smart-vault.yml new file mode 100644 index 00000000..118d2afc --- /dev/null +++ b/.github/workflows/ci-smart-vault.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} diff --git a/.github/workflows/ci-tasks.yml b/.github/workflows/ci-tasks.yml new file mode 100644 index 00000000..e738eacb --- /dev/null +++ b/.github/workflows/ci-tasks.yml @@ -0,0 +1,63 @@ +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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + + 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 + - name: Job failed + uses: rjstone/discord-webhook-notify@v1 + if: failure() + with: + severity: error + details: Job failed! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }} + - name: Job cancelled + uses: rjstone/discord-webhook-notify@v1 + if: cancelled() + with: + severity: warn + details: Job cancelled! + webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}