# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: publish env: ARBITRUM_ALCHEMY_API: ${{ secrets.ARBITRUM_ALCHEMY_API }} BASE_ALCHEMY_API: ${{ secrets.BASE_ALCHEMY_API }} MAINNET_ALCHEMY_API: ${{ secrets.MAINNET_ALCHEMY_API }} LIFI_API_KEY: ${{ secrets.LIFI_API_KEY }} ZEROEX_API_KEY: ${{ secrets.ZEROEX_API_KEY }} ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }} on: push: branches: [main] pull_request: types: [opened, reopened, synchronize] permissions: contents: write issues: write pull-requests: write jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' - run: npm ci - run: npm run lint - run: npm run build --if-present - run: npm run test:utils - run: npm run test:builders e2e: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' - run: npm ci - run: npm run build --if-present - run: npm run hardhat & - name: Wait for hardhat nodes to start run: sleep 10 - run: npm run test:e2e:mainnet e2e-base: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' - run: npm ci - run: npm run build --if-present - run: npm run hardhat & - name: Wait for hardhat nodes to start run: sleep 10 - run: npm run test:e2e:base e2e-arb: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' - run: npm ci - run: npm run build --if-present - run: npm run hardhat & - name: Wait for hardhat nodes to start run: sleep 10 - run: npm run test:e2e:arbitrum publish: runs-on: ubuntu-latest if: ${{ github.ref == 'refs/heads/main' }} needs: [build, e2e, e2e-base, e2e-arb] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' - run: npm ci - run: npm run build - name: Release env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npx semantic-release --branches main