Deploy Curve pool booster Factory Arbitrum #5511
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: DeFi | |
| on: | |
| pull_request: | |
| types: [opened, reopened, synchronize] | |
| push: | |
| branches: | |
| - 'master' | |
| - 'staging' | |
| - 'stable' | |
| workflow_dispatch: | |
| concurrency: | |
| cancel-in-progress: true | |
| group: ${{ github.ref_name }} | |
| jobs: | |
| contracts-lint: | |
| name: "Contracts Linter" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| # this will compile and output the contract sizes | |
| - run: npx hardhat compile | |
| env: | |
| CONTRACT_SIZE: true | |
| working-directory: ./contracts | |
| - run: pnpm run lint | |
| working-directory: ./contracts | |
| - run: pnpm prettier:check | |
| working-directory: ./contracts | |
| contracts-unit-coverage: | |
| name: "Mainnet Unit Coverage" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - name: Run Mainnet Unit Coverage | |
| run: pnpm run test:coverage | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: unit-test-coverage-${{ github.sha }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| contracts-base-test: | |
| name: "Base Unit Coverage" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - name: Run Base Unit Coverage | |
| env: | |
| UNIT_TESTS_NETWORK: base | |
| run: pnpm run test:coverage:base | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: base-unit-test-coverage-${{ github.sha }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| contracts-sonic-test: | |
| name: "Sonic Unit Coverage" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - name: Run Sonic Unit Coverage | |
| env: | |
| UNIT_TESTS_NETWORK: sonic | |
| run: pnpm run test:coverage:sonic | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: sonic-unit-test-coverage-${{ github.sha }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| contracts-forktest: | |
| name: "Mainnet Fork Tests ${{ matrix.chunk_id }}" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| chunk_id: [0,1,2,3] | |
| continue-on-error: true | |
| env: | |
| HARDHAT_CACHE_DIR: ./cache | |
| PROVIDER_URL: ${{ secrets.PROVIDER_URL }} | |
| BEACON_PROVIDER_URL: ${{ secrets.BEACON_PROVIDER_URL }} | |
| ONEINCH_API_KEY: ${{ secrets.ONEINCH_API_KEY }} | |
| CHUNK_ID: "${{matrix.chunk_id}}" | |
| MAX_CHUNKS: "4" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - uses: actions/cache@v4 | |
| id: hardhat-cache | |
| with: | |
| path: contracts/cache | |
| key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-hardhat-cache | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - run: pnpm run test:coverage:fork | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: fork-test-coverage-${{ github.sha }}-runner${{ matrix.chunk_id }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| contracts-arb-forktest: | |
| name: "Arbitrum Fork Tests" | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| env: | |
| HARDHAT_CACHE_DIR: ./cache | |
| PROVIDER_URL: ${{ secrets.PROVIDER_URL }} | |
| ARBITRUM_PROVIDER_URL: ${{ secrets.ARBITRUM_PROVIDER_URL }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - uses: actions/cache@v4 | |
| id: hardhat-cache | |
| with: | |
| path: contracts/cache | |
| key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-hardhat-cache | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - run: pnpm run test:coverage:arb-fork | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: fork-test-arb-coverage-${{ github.sha }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| contracts-base-forktest: | |
| name: "Base Fork Tests" | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| env: | |
| HARDHAT_CACHE_DIR: ./cache | |
| PROVIDER_URL: ${{ secrets.PROVIDER_URL }} | |
| BASE_PROVIDER_URL: ${{ secrets.BASE_PROVIDER_URL }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - uses: actions/cache@v4 | |
| id: hardhat-cache | |
| with: | |
| path: contracts/cache | |
| key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-hardhat-cache | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - run: pnpm run test:coverage:base-fork | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: fork-test-base-coverage-${{ github.sha }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| contracts-sonic-forktest: | |
| name: "Sonic Fork Tests" | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| env: | |
| HARDHAT_CACHE_DIR: ./cache | |
| PROVIDER_URL: ${{ secrets.PROVIDER_URL }} | |
| SONIC_PROVIDER_URL: ${{ secrets.SONIC_PROVIDER_URL }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - uses: actions/cache@v4 | |
| id: hardhat-cache | |
| with: | |
| path: contracts/cache | |
| key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-hardhat-cache | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - run: pnpm run test:coverage:sonic-fork | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: fork-test-sonic-coverage-${{ github.sha }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| contracts-plume-forktest: | |
| name: "Plume Fork Tests" | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| env: | |
| HARDHAT_CACHE_DIR: ./cache | |
| PROVIDER_URL: ${{ secrets.PROVIDER_URL }} | |
| PLUME_PROVIDER_URL: ${{ secrets.PLUME_PROVIDER_URL }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - uses: actions/cache@v4 | |
| id: hardhat-cache | |
| with: | |
| path: contracts/cache | |
| key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-hardhat-cache | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - run: pnpm run test:coverage:plume-fork | |
| working-directory: ./contracts | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: fork-test-plume-coverage-${{ github.sha }} | |
| path: | | |
| ./contracts/coverage.json | |
| ./contracts/coverage/**/* | |
| retention-days: 1 | |
| coverage-uploader: | |
| name: "Upload Coverage Reports" | |
| runs-on: ubuntu-latest | |
| needs: | |
| - contracts-unit-coverage | |
| - contracts-base-test | |
| - contracts-sonic-test | |
| - contracts-forktest | |
| - contracts-arb-forktest | |
| - contracts-base-forktest | |
| - contracts-sonic-forktest | |
| - contracts-plume-forktest | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/cache@v4 | |
| id: hardhat-cache | |
| with: | |
| path: contracts/cache | |
| key: ${{ runner.os }}-hardhat-${{ hashFiles('contracts/cache/*.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-hardhat-cache | |
| - name: Download all reports | |
| uses: actions/download-artifact@v4 | |
| - uses: codecov/codecov-action@v4 | |
| with: | |
| fail_ci_if_error: true | |
| slither: | |
| name: "Slither" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python 3.10 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.10' | |
| - name: Install dependencies | |
| run: | | |
| wget https://github.com/ethereum/solidity/releases/download/v0.8.7/solc-static-linux | |
| chmod +x solc-static-linux | |
| sudo mv solc-static-linux /usr/local/bin/solc | |
| pip3 install slither-analyzer | |
| pip3 inspect | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| run_install: false | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20.x" | |
| cache: "pnpm" | |
| cache-dependency-path: contracts/pnpm-lock.yaml | |
| - name: Configure Git to use HTTPS for GitHub | |
| run: git config --global url."https://github.com/".insteadOf "[email protected]:" | |
| - name: Install deps | |
| working-directory: ./contracts | |
| run: pnpm install --frozen-lockfile | |
| - name: Test with Slither | |
| working-directory: ./contracts | |
| run: slither . --config-file slither.config.json | |
| snyk: | |
| name: "Snyk" | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@master | |
| - name: Run Snyk to check for vulnerabilities | |
| uses: snyk/actions/node@master | |
| continue-on-error: true | |
| env: | |
| SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} | |
| with: | |
| args: --severity-threshold=high --all-projects |