-
Notifications
You must be signed in to change notification settings - Fork 1
147 lines (139 loc) · 4.15 KB
/
solana-programs.yaml
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
name: Tests
on:
push:
branches:
- main
pull_request:
branches:
- main
- develop
paths: ['solana-programs/**', '.github/workflows/solana-programs.yml']
env:
SOLANA_CLI_VERSION: 1.18.15
NODE_VERSION: 18.12.1
jobs:
test-rust-lint:
name: Test Rust Lint
runs-on: ubuntu-latest
defaults:
run:
working-directory: solana-programs
steps:
- name: Setup | Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.12.1
with:
access_token: ${{ github.token }}
- uses: actions/checkout@v2
- uses: ./.github/actions/setup/
- uses: actions/cache@v2
name: Cache Cargo registry + index
id: cache-cargo-build
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
- run: cargo fmt -- --check
working-directory: solana-programs
- run: cargo clippy --all-targets -- -D warnings -A clippy::result_large_err -A clippy::too_many_arguments -A clippy::uninlined-format-args -A ambiguous_glob_reexports
working-directory: solana-programs
test-unit:
name: Rust Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/setup/
- uses: actions/cache@v2
name: Cache Cargo registry + index
id: cache-cargo-build
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
key: cargo-${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
- run: cargo test --lib
working-directory: solana-programs
build:
defaults:
run:
working-directory: solana-programs
name: Build Anchor
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/build-anchor/
with:
testing: true
# test-docker-builds:
# needs: build
# name: Test Docker Builds
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# test:
# - packages/vsr-metadata-service
# steps:
# - uses: actions/checkout@v3
# - run: cd $DOCKER_PATH && docker build .
# env:
# DOCKER_PATH: ${{ matrix.test }}
# test-rust-builds:
# needs: build
# name: Test Rust Builds
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# test:
# - utils/ecc-sig-verifier
# - utils/bulk-claim-rewards
# - utils/hpl-utils
# - utils/migration-tx-executor
# - utils/vehnt
# steps:
# - uses: actions/checkout@v3
# - uses: ./.github/actions/build-anchor/
# with:
# testing: true
# - run: cd $RUST_PATH && cargo build
# env:
# RUST_PATH: ${{ matrix.test }}
test-contracts:
needs: build
name: Test Anchor Contracts
runs-on: ubuntu-latest
defaults:
run:
working-directory: solana-programs
strategy:
fail-fast: false
matrix:
test:
- tests/tuktuk.ts
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/build-anchor/
with:
testing: true
- uses: ./.github/actions/setup-ts/
- name: Start Anchor Localnet
run: ~/.cargo/bin/anchor localnet --skip-build --provider.wallet ~/.config/solana/id.json & sleep 2
working-directory: solana-programs
- name: Wait for localnet to start
run: |
while [[ "$(curl -s http://localhost:8899/health)" != "ok" ]]; do
echo "Waiting for local Anchor network to start..."
sleep 5
done
working-directory: solana-programs
- run: ANCHOR_WALLET=${HOME}/.config/solana/id.json yarn run ts-mocha -p ./tsconfig.test.json -t 1000000 --exit $TEST
env:
TESTING: true
TEST: ${{ matrix.test }}
ANCHOR_PROVIDER_URL: http://localhost:8899
working-directory: solana-programs