-
Notifications
You must be signed in to change notification settings - Fork 74
135 lines (126 loc) · 4.1 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
name: CI
on:
push:
branches:
- main
pull_request:
merge_group:
jobs:
build-test:
name: build test ${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- name: linux x86-64
os: ubuntu-latest
- name: windows x86-64
os: windows-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@nextest
- name: nextest archive
run: cargo nextest archive --workspace --all-features --cargo-profile ci --archive-file 'nextest-archive-${{ matrix.platform.os }}.tar.zst'
- uses: actions/upload-artifact@v4
with:
name: nextest-archive-${{ matrix.platform.os }}
path: nextest-archive-${{ matrix.platform.os }}.tar.zst
test:
name: test ${{ matrix.platform.name }} ${{ matrix.partition }}/8
runs-on: ${{ matrix.platform.os }}
needs:
- build-test
strategy:
fail-fast: false
matrix:
platform:
- name: linux x86-64
os: ubuntu-latest
- name: windows x86-64
os: windows-latest
partition: [ 1, 2, 3, 4, 5, 6, 7, 8 ]
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@nextest
- uses: actions/download-artifact@v4
with:
name: nextest-archive-${{ matrix.platform.os }}
- name: nextest partition ${{ matrix.partition }}/8
run: cargo nextest run --partition 'count:${{ matrix.partition }}/8' --archive-file 'nextest-archive-${{ matrix.platform.os }}.tar.zst'
test-doc:
name: doc tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: run tests
run: cargo test --doc
scarb-metadata-compatibility:
name: scarb-metadata compatibility check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: software-mansion/setup-scarb@v1
with:
scarb-version: "2.3.0"
- run: echo "SCARB_TEST_BIN=$(which scarb)" >> $GITHUB_ENV
- name: run tests
run: cargo test -p scarb-metadata
check-rust:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo fmt --check
- run: cargo clippy --all-targets --all-features -- --no-deps
env:
# Make sure CI fails on all warnings, including Clippy lints.
RUSTFLAGS: "-Dwarnings"
- run: cargo doc --all-features --no-deps
env:
# Make sure CI fails on all warnings, including Clippy lints.
RUSTDOCFLAGS: "-Dwarnings"
check-website:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./website
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18.x'
cache: npm
cache-dependency-path: website/package-lock.json
- run: npm ci
- run: npm run fmt:check
test-prebuilt-plugins:
name: test prebuilt plugins ${{ matrix.platform.name }}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
platform:
- name: linux x86-64
os: ubuntu-latest
- name: windows x86-64
os: windows-latest
- name: macos arm64
os: macos-latest
- name: macos x86-64
os: macos-13
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run prebuilt plugin tests
run: |
cargo test -p scarb --test build_cairo_plugin compile_with_prebuilt_plugins -- --exact
cargo test -p scarb --test build_cairo_plugin compile_with_invalid_prebuilt_plugins -- --exact
cargo test -p scarb --test proc_macro_server load_prebuilt_proc_macros -- --exact