forked from foundry-rs/starknet-foundry
-
Notifications
You must be signed in to change notification settings - Fork 0
151 lines (138 loc) · 4.36 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
name: CI
on:
pull_request:
merge_group:
push:
branches:
- master
workflow_dispatch:
jobs:
test-forge-unit-and-integration:
name: Test Forge / Unit and Integration Tests
env:
SCARB_VERSION: 2.3.0
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: software-mansion/[email protected]
with:
scarb-version: ${{ env.SCARB_VERSION }}
- run: cargo test --release --lib -p forge
- run: cargo test --release integration -p forge
test-forge-e2e:
name: Test Forge / E2E Tests
env:
SCARB_VERSION: 2.3.0
runs-on: ubuntu-latest
steps:
- name: Extract branch name
if: github.event_name != 'pull_request'
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV
- name: Extract branch name on pull request
if: github.event_name == 'pull_request'
run: echo "BRANCH_NAME=$(echo $GITHUB_HEAD_REF)" >> $GITHUB_ENV
- name: Extract repo name and owner
if: github.event_name != 'pull_request'
run: echo "REPO_NAME=$(echo ${{ github.repository }}.git)" >> $GITHUB_ENV
- name: Extract repo name and owner on pull request
if: github.event_name == 'pull_request'
run: echo "REPO_NAME=$(echo ${{ github.event.pull_request.head.repo.full_name }}.git)" >> $GITHUB_ENV
- name: Print repo name
run: echo 'The repo name is' $REPO_NAME
- name: Get branch name
run: echo 'The branch name is' $BRANCH_NAME
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: software-mansion/[email protected]
with:
scarb-version: ${{ env.SCARB_VERSION }}
- run: cargo test --release e2e -p forge
test-cheatnet:
name: Test Cheatnet
env:
SCARB_VERSION: 2.3.0
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: software-mansion/[email protected]
with:
scarb-version: ${{ env.SCARB_VERSION }}
- name: Run Cheatnet tests
run: cargo test -p cheatnet
test-cast:
name: Test Cast
runs-on: ubuntu-latest
env:
DEVNET_VERSION: 0.5.5
SCARB_VERSION: 0.5.2
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@439cf607258077187679211f12aa6f19af4a0af7
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: pip cache
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ env.DEVNET_VERSION }}
- name: Install devnet
run: |
sudo apt install -y libgmp3-dev
pip install starknet-devnet==${{ env.DEVNET_VERSION }}
- uses: software-mansion/[email protected]
with:
scarb-version: ${{ env.SCARB_VERSION }}
- name: Prepare for tests
run: |
./scripts/prepare_for_tests.sh
- name: Run tests
run: cargo test --release -p cast
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@439cf607258077187679211f12aa6f19af4a0af7
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- name: Check forge formatting
run: cargo fmt --check -p forge
- name: Check cast formatting
run: cargo fmt --check -p cast
- name: Check test-collector formatting
run: cargo fmt --check -p test-collector
- name: Check cheatnet formatting
run: cargo fmt --check -p cheatnet
clippy:
runs-on: ubuntu-latest
env:
# Make sure CI fails on all warnings - including Clippy lints.
RUSTFLAGS: "-Dwarnings"
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: dtolnay/rust-toolchain@439cf607258077187679211f12aa6f19af4a0af7
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
- run: cargo lint