-
Notifications
You must be signed in to change notification settings - Fork 102
130 lines (104 loc) · 2.88 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Main
on:
pull_request:
push:
branches: [main]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Codegen
run: cd packages/core/ && pnpm wagmi generate
- name: Typecheck
run: pnpm typecheck
- name: Test (types)
run: pnpm --filter core test:typecheck
- name: Lint
run: pnpm lint
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Build
run: pnpm build
test:
name: Test [core]
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
fail-fast: false
matrix:
database: [Postgres, SQLite]
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Setup Postgres
if: ${{ matrix.database == 'Postgres' }}
uses: ikalnytskyi/action-setup-postgres@v4
id: postgres
- name: Setup
uses: ./.github/actions/setup
- name: Codegen
run: cd packages/core/ && pnpm wagmi generate
- name: Test
run: pnpm --filter core test
env:
DATABASE_URL: ${{ matrix.database == 'Postgres' && steps.postgres.outputs.connection-uri || '' }}
test-create-ponder:
name: Test [create-ponder]
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Test
run: pnpm --filter create-ponder test
env:
ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }}
test-common:
name: Test [common]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
runtime-version: ["Node", "Bun"]
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Set up pnpm
uses: pnpm/action-setup@v3
with:
version: 9.10.0
- name: Install Node
if: ${{ matrix.runtime-version == 'Node' }}
uses: actions/setup-node@v3
with:
cache: pnpm
node-version: 20
- name: Install Bun
if: ${{ matrix.runtime-version == 'Bun' }}
uses: oven-sh/setup-bun@v1
- name: Install dependencies
shell: bash
run: pnpm install --frozen-lockfile
- name: Test Node
if: ${{ matrix.runtime-version == 'Node' }}
run: cd packages/common && pnpm test:typecheck
- name: Test Bun
if: ${{ matrix.runtime-version == 'Bun' }}
run: cd packages/common && bun test