-
Notifications
You must be signed in to change notification settings - Fork 0
133 lines (107 loc) · 3.18 KB
/
ci.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
name: CI Pipeline
on: [push, pull_request]
env:
FOUNDRY_PROFILE: ci
FOUNDRY_FORK_BLOCK_NUMBER: 61373304
jobs:
common:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Install and cache solana
uses: ./.github/actions/cache-solana
- name: Install and cache node modules
uses: ./.github/actions/cache-node
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Cache rust
uses: Swatinem/rust-cache@v2
with:
workspaces: solana-contract
- name: install essentials
run: |
sudo apt-get update
sudo apt-get install -y pkg-config build-essential libudev-dev
evm:
runs-on: ubuntu-latest
needs: common
steps:
- name: Check out code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Run Forge build
working-directory: evm-contract
run: |
forge --version
forge build --sizes
- name: Run Forge tests
env:
RPC: ${{ secrets.POLYGON_RPC }}
working-directory: evm-contract
run: forge test -vvv --fork-url $RPC --fork-block-number $FOUNDRY_FORK_BLOCK_NUMBER
solana:
needs: common
runs-on: ubuntu-latest
outputs:
target_deploy_artifact: ${{ steps.build-artifact-upload-step.outputs.artifact-id }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Cache rust
uses: Swatinem/rust-cache@v2
with:
workspaces: solana-contract
- name: Install and cache solana
uses: ./.github/actions/cache-solana
- name: Run fmt
working-directory: solana-contract
run: cargo fmt -- --check
- name: Run clippy
working-directory: solana-contract
run: cargo clippy -- --deny=warnings
- name: Cache build artifact
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
solana-contract/target
key: cargo-build-${{ hashFiles('**/Cargo.lock') }}-${{ hashFiles('rust-toolchain.toml') }}
- name: Build
working-directory: solana-contract
run: cargo build-sbf
- name: Upload build artifacts
id: build-artifact-upload-step
uses: actions/upload-artifact@v4
with:
name: target_deploy
path: solana-contract/target/deploy
if-no-files-found: error
retention-days: 1
- name: Run tests
working-directory: solana-contract
run: cargo test-sbf
ui:
needs: common
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install and cache node modules
uses: ./.github/actions/cache-node
- name: Check that all deps are restored
run: |
ls -l
ls -l ui
- name: Run build
working-directory: ui
run: yarn build
- name: Run lint
working-directory: ui
run: yarn lint