-
Notifications
You must be signed in to change notification settings - Fork 4
142 lines (112 loc) · 3.21 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
131
132
133
134
135
136
137
138
139
140
141
142
name: Main
on:
push:
branches: [main]
pull_request:
jobs:
format_and_lint_client_js:
name: Format & Lint Client JS
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
- name: Format Client JS
run: pnpm clients:js:format
- name: Lint Client JS
run: pnpm clients:js:lint
format_and_lint_client_rust:
name: Format & Lint Client Rust
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
toolchain: format, lint
- name: Format
run: pnpm clients:rust:format
- name: Lint / Clippy
run: pnpm zx ./scripts/client/lint-rust-clippy.mjs
- name: Lint / Features
run: pnpm zx ./scripts/client/lint-rust-features.mjs
- name: Lint / Docs
run: pnpm zx ./scripts/client/lint-rust-docs.mjs
format_and_lint_interface:
name: Format & Lint Interface
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
toolchain: format, lint
- name: Format
run: pnpm interface:format
- name: Lint / Clippy
run: pnpm zx ./scripts/interface/lint-clippy.mjs
- name: Lint / Features
run: pnpm zx ./scripts/interface/lint-features.mjs
- name: Lint / Docs
run: pnpm zx ./scripts/interface/lint-docs.mjs
test_interface:
name: Test Interface
runs-on: ubuntu-latest
needs: format_and_lint_interface
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
toolchain: test
cargo-cache-key: cargo-interface
solana: true
- name: Test Interface
run: pnpm interface:test
generate_clients:
name: Check Client Generation
runs-on: ubuntu-latest
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
toolchain: format
- name: Generate Clients
run: pnpm generate:clients
- name: Check Working Directory
run: |
git status --porcelain
test -z "$(git status --porcelain)"
test_client_js:
name: Test Client JS
runs-on: ubuntu-latest
needs: format_and_lint_client_js
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
solana: true
- name: Test Client JS
run: pnpm clients:js:test
test_client_rust:
name: Test Client Rust
runs-on: ubuntu-latest
needs: format_and_lint_client_rust
steps:
- name: Git Checkout
uses: actions/checkout@v4
- name: Setup Environment
uses: ./.github/actions/setup
with:
cargo-cache-key: cargo-rust-client
solana: true
- name: Test Client Rust
run: pnpm clients:rust:test