-
Notifications
You must be signed in to change notification settings - Fork 3
130 lines (104 loc) · 2.85 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:
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 Client Rust
run: pnpm clients:rust:format
- name: Lint Client Rust
run: pnpm clients:rust:lint
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 Interface
run: pnpm interface:format
- name: Lint Interface
run: pnpm interface:lint
build_interface:
name: Build 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: build
cargo-cache-key: cargo-interface
solana: true
- name: Build Interface
run: pnpm interface:build
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