-
Notifications
You must be signed in to change notification settings - Fork 123
156 lines (137 loc) · 4.56 KB
/
program.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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: Program
on:
push:
branches: [master, exchange_rate_override]
pull_request:
branches: [master, exchange_rate_override]
env:
CARGO_TERM_COLOR: always
SOLANA_VERSION: "1.11.10"
RUST_TOOLCHAIN: "1.59.0"
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# Install Cachix
- uses: cachix/install-nix-action@v25
- name: Setup Cachix
uses: cachix/cachix-action@v12
with:
name: saber
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
# Install Rust
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
override: true
profile: minimal
toolchain: ${{ env.RUST_TOOLCHAIN }}
# Install Solana
- name: Cache Solana binaries
id: solana-cache
uses: actions/cache@v3
with:
path: |
~/.cache/solana
~/.local/share/solana/install
key: ${{ runner.os }}-${{ env.SOLANA_VERSION }}
- name: Install Solana
if: steps.solana-cache.outputs.cache-hit != 'true'
run: |
nix shell .#ci --command solana-install init ${{ env.SOLANA_VERSION }}
- name: Setup Solana Path
run: |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH
export PATH="/home/runner/.local/share/solana/install/active_release/bin:$PATH"
solana --version
- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
key: ${{ runner.os }}-${{ env.SOLANA_VERSION }}
- name: Run unit tests
working-directory: stable-swap-program
run: ./do.sh test --nocapture
e2e-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14"
- name: Cache SDK dependencies
uses: actions/cache@v3
id: cache-sdk
with:
path: ./sdk/node_modules
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
# Install Cachix
- uses: cachix/install-nix-action@v25
- name: Setup Cachix
uses: cachix/cachix-action@v12
with:
name: saber
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
# Install Solana
- name: Cache Solana binaries
id: solana-cache
uses: actions/cache@v3
with:
path: |
~/.cache/solana
~/.local/share/solana/install
key: ${{ runner.os }}-${{ env.SOLANA_VERSION }}
- name: Install Solana
if: steps.solana-cache.outputs.cache-hit != 'true'
run: |
nix shell .#ci --command solana-install init ${{ env.SOLANA_VERSION }}
- name: Setup Solana Path
run: |
echo "$HOME/.local/share/solana/install/active_release/bin" >> $GITHUB_PATH
export PATH="/home/runner/.local/share/solana/install/active_release/bin:$PATH"
solana --version
# Install Rust
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
override: true
profile: minimal
toolchain: ${{ env.RUST_TOOLCHAIN }}
- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
key: ${{ runner.os }}-${{ env.SOLANA_VERSION }}
- name: Build
run: nix shell .#ci --command anchor build --program-name stable_swap
- name: Run e2e tests
working-directory: stable-swap-program
run: nix shell ../#ci --command ./do.sh e2e-test
## FIXME(michael): ERROR: no interesting inputs were found. Is the code instrumented for coverage? Exiting.
## fuzz:
## runs-on: ubuntu-latest
## steps:
## - uses: actions/checkout@v3
## # Install Rust
## - name: Install Rust
## uses: actions-rs/toolchain@v1
## with:
## override: true
## profile: minimal
## toolchain: nightly-2022-02-01
## - name: Cache dependencies
## uses: Swatinem/rust-cache@v2
## # Install Cachix
## - uses: cachix/install-nix-action@v25
## - name: Setup Cachix
## uses: cachix/cachix-action@v12
## with:
## name: saber
## authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
## - name: Build
## run: nix shell .#ci --command cargo fuzz build --dev fuzz_test
## env:
## RUSTFLAGS: "-Znew-llvm-pass-manager=no"
## - name: Run fuzz test
## run: nix shell .#ci --command cargo fuzz run --dev fuzz_test -- -max_total_time=180
## env:
## RUSTFLAGS: "-Znew-llvm-pass-manager=no"