ci: refactor #1659
Workflow file for this run
This file contains 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: Main | |
on: | |
pull_request: | |
push: | |
branches: [main] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
install: | |
name: Install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup | |
lint: | |
name: Lint | |
needs: install | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Check types | |
run: pnpm typecheck | |
- name: Lint & format code | |
run: pnpm format & pnpm lint:fix | |
- name: Commit | |
run: | | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
git config --global user.name "github-actions[bot]" | |
git add . | |
if [ -z "$(git status --porcelain)" ]; then | |
echo "no formatting changed" | |
exit 0 | |
fi | |
git commit -m "chore: format" | |
git push | |
echo "pushed formatting changes https://github.com/$GITHUB_REPOSITORY/commit/$(git rev-parse HEAD)" | |
build: | |
name: Build | |
needs: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Build | |
run: pnpm build | |
test: | |
name: Test | |
needs: lint | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
shard: [1, 2, 3] | |
total-shards: [3] | |
transport-mode: ['http', 'webSocket'] | |
include: | |
- batch-multicall: 'false' | |
- batch-multicall: 'true' | |
transport-mode: 'http' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Test | |
uses: nick-fields/retry@v2 | |
with: | |
timeout_minutes: 20 | |
max_attempts: 3 | |
command: pnpm test:ci --shard=${{ matrix.shard }}/${{ matrix.total-shards }} | |
env: | |
ALCHEMY_ID: ${{ vars.ALCHEMY_ID }} | |
VITE_ANVIL_BLOCK_NUMBER: ${{ vars.VITE_ANVIL_BLOCK_NUMBER }} | |
VITE_ANVIL_BLOCK_TIME: ${{ vars.VITE_ANVIL_BLOCK_TIME }} | |
VITE_ANVIL_FORK_URL: ${{ vars.VITE_ANVIL_FORK_URL }} | |
VITE_NETWORK_TRANSPORT_MODE: ${{ matrix.transport-mode }} | |
VITE_BATCH_MULTICALL: ${{ matrix.batch-multicall }} | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
test_types: | |
name: Test Types | |
needs: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Test Types | |
run: pnpm test:typecheck | |
env: | |
VITE_ANVIL_BLOCK_NUMBER: ${{ vars.VITE_ANVIL_BLOCK_NUMBER }} | |
bench: | |
name: Benchmark | |
needs: lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup | |
- name: Bench | |
run: pnpm bench:ci --changed | |
env: | |
ALCHEMY_ID: ${{ vars.ALCHEMY_ID }} | |
VITE_ANVIL_BLOCK_NUMBER: ${{ vars.VITE_ANVIL_BLOCK_NUMBER }} | |
VITE_ANVIL_BLOCK_TIME: ${{ vars.VITE_ANVIL_BLOCK_TIME }} | |
VITE_ANVIL_FORK_URL: ${{ vars.VITE_ANVIL_FORK_URL }} | |
VITE_NETWORK_TRANSPORT_MODE: ${{ matrix.transport-mode }} | |
- name: Report | |
run: pnpm bun ./.github/scripts/bench.ts | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |