Skip to content

Commit d61b252

Browse files
committed
ci: add new tests to CI
1 parent c039190 commit d61b252

7 files changed

Lines changed: 215 additions & 18 deletions

File tree

.github/workflows/ci.yml

Lines changed: 201 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111

1212
steps:
1313
- name: Checkout
14-
uses: actions/checkout@v4
14+
uses: actions/checkout@v5
1515

1616
- name: Install system dependencies
1717
run: |
@@ -46,3 +46,203 @@ jobs:
4646
- name: Test
4747
timeout-minutes: 15
4848
run: RUN_ANVIL_TESTS=1 cargo test --workspace --all-targets --all-features --locked
49+
50+
canonical-guest:
51+
runs-on: ubuntu-latest
52+
needs: rust
53+
timeout-minutes: 45
54+
55+
steps:
56+
- name: Checkout
57+
uses: actions/checkout@v5
58+
59+
- name: Install system dependencies
60+
run: |
61+
sudo apt-get update
62+
sudo apt-get install -y \
63+
lua5.4 \
64+
liblua5.4-dev \
65+
libslirp-dev \
66+
ca-certificates \
67+
wget \
68+
xz-utils
69+
70+
- name: Install xgenext2fs
71+
run: |
72+
set -euo pipefail
73+
ARCH="$(dpkg --print-architecture)"
74+
VERSION="v1.5.5"
75+
76+
case "${ARCH}" in
77+
amd64)
78+
DEB_SHA256="e42857c454a772553e2bec5e73ac499b39d35dbf622bdb4cbb1b19fe98f62999"
79+
;;
80+
arm64)
81+
DEB_SHA256="a9964903e9d4c1006dc9d88b4823be14d2eccaf66007c48e76c883e17db2880c"
82+
;;
83+
*)
84+
echo "unsupported arch for xgenext2fs: ${ARCH}" >&2
85+
exit 1
86+
;;
87+
esac
88+
89+
wget -O /tmp/xgenext2fs.deb "https://github.com/cartesi/genext2fs/releases/download/${VERSION}/xgenext2fs_${ARCH}.deb"
90+
echo "${DEB_SHA256} /tmp/xgenext2fs.deb" | sha256sum --check
91+
sudo apt-get update
92+
sudo apt-get install -y /tmp/xgenext2fs.deb
93+
94+
- name: Install cartesi-machine (machine emulator CLI)
95+
run: |
96+
set -euo pipefail
97+
ARCH="$(dpkg --print-architecture)"
98+
VERSION="v0.20.0-test2"
99+
100+
case "${ARCH}" in
101+
amd64)
102+
DEB_SHA256="39bbfc96a6cc6606307294b719df65f4f2725e8d200d062bcbd8c22355b99b56"
103+
;;
104+
arm64)
105+
DEB_SHA256="787d823756000cdecd72da8a3494b4c08613087379035959e561bbaef7a220ba"
106+
;;
107+
*)
108+
echo "unsupported arch for machine-emulator: ${ARCH}" >&2
109+
exit 1
110+
;;
111+
esac
112+
113+
wget -O /tmp/machine-emulator.deb "https://github.com/cartesi/machine-emulator/releases/download/${VERSION}/machine-emulator_${ARCH}.deb"
114+
echo "${DEB_SHA256} /tmp/machine-emulator.deb" | sha256sum --check
115+
sudo apt-get update
116+
sudo apt-get install -y /tmp/machine-emulator.deb
117+
cartesi-machine --version
118+
119+
- name: Set up QEMU
120+
uses: docker/setup-qemu-action@v3
121+
122+
- name: Set up Docker Buildx
123+
uses: docker/setup-buildx-action@v3
124+
125+
- name: Install Rust toolchain
126+
uses: dtolnay/rust-toolchain@stable
127+
with:
128+
components: rustfmt
129+
130+
- name: Cache Rust artifacts
131+
uses: Swatinem/rust-cache@v2
132+
133+
- name: Install just
134+
uses: taiki-e/install-action@v2
135+
with:
136+
tool: just
137+
138+
- name: Install cross
139+
uses: taiki-e/install-action@v2
140+
with:
141+
tool: cross
142+
143+
- name: Download canonical app deps
144+
run: just -f examples/canonical-app/justfile download-deps
145+
146+
- name: Run guest tests
147+
run: just canonical-test-guest
148+
149+
rollups-e2e:
150+
runs-on: ubuntu-latest
151+
needs: rust
152+
timeout-minutes: 60
153+
154+
steps:
155+
- name: Checkout
156+
uses: actions/checkout@v5
157+
158+
- name: Install system dependencies
159+
run: |
160+
sudo apt-get update
161+
sudo apt-get install -y \
162+
lua5.4 \
163+
liblua5.4-dev \
164+
libslirp-dev \
165+
ca-certificates \
166+
wget \
167+
xz-utils
168+
169+
- name: Install xgenext2fs
170+
run: |
171+
set -euo pipefail
172+
ARCH="$(dpkg --print-architecture)"
173+
VERSION="v1.5.5"
174+
175+
case "${ARCH}" in
176+
amd64)
177+
DEB_SHA256="e42857c454a772553e2bec5e73ac499b39d35dbf622bdb4cbb1b19fe98f62999"
178+
;;
179+
arm64)
180+
DEB_SHA256="a9964903e9d4c1006dc9d88b4823be14d2eccaf66007c48e76c883e17db2880c"
181+
;;
182+
*)
183+
echo "unsupported arch for xgenext2fs: ${ARCH}" >&2
184+
exit 1
185+
;;
186+
esac
187+
188+
wget -O /tmp/xgenext2fs.deb "https://github.com/cartesi/genext2fs/releases/download/${VERSION}/xgenext2fs_${ARCH}.deb"
189+
echo "${DEB_SHA256} /tmp/xgenext2fs.deb" | sha256sum --check
190+
sudo apt-get update
191+
sudo apt-get install -y /tmp/xgenext2fs.deb
192+
193+
- name: Install cartesi-machine (machine emulator CLI)
194+
run: |
195+
set -euo pipefail
196+
ARCH="$(dpkg --print-architecture)"
197+
VERSION="v0.20.0-test2"
198+
199+
case "${ARCH}" in
200+
amd64)
201+
DEB_SHA256="39bbfc96a6cc6606307294b719df65f4f2725e8d200d062bcbd8c22355b99b56"
202+
;;
203+
arm64)
204+
DEB_SHA256="787d823756000cdecd72da8a3494b4c08613087379035959e561bbaef7a220ba"
205+
;;
206+
*)
207+
echo "unsupported arch for machine-emulator: ${ARCH}" >&2
208+
exit 1
209+
;;
210+
esac
211+
212+
wget -O /tmp/machine-emulator.deb "https://github.com/cartesi/machine-emulator/releases/download/${VERSION}/machine-emulator_${ARCH}.deb"
213+
echo "${DEB_SHA256} /tmp/machine-emulator.deb" | sha256sum --check
214+
sudo apt-get update
215+
sudo apt-get install -y /tmp/machine-emulator.deb
216+
cartesi-machine --version
217+
218+
- name: Set up QEMU
219+
uses: docker/setup-qemu-action@v3
220+
221+
- name: Set up Docker Buildx
222+
uses: docker/setup-buildx-action@v3
223+
224+
- name: Install Rust toolchain
225+
uses: dtolnay/rust-toolchain@stable
226+
with:
227+
components: rustfmt
228+
229+
- name: Cache Rust artifacts
230+
uses: Swatinem/rust-cache@v2
231+
232+
- name: Install Foundry
233+
uses: foundry-rs/foundry-toolchain@v1
234+
with:
235+
version: v1.4.3
236+
237+
- name: Install just
238+
uses: taiki-e/install-action@v2
239+
with:
240+
tool: just
241+
242+
- name: Install cross
243+
uses: taiki-e/install-action@v2
244+
with:
245+
tool: cross
246+
247+
- name: Run rollups E2E tests
248+
run: just test-rollups-e2e

.github/workflows/release.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434

3535
steps:
3636
- name: Checkout
37-
uses: actions/checkout@v4
37+
uses: actions/checkout@v5
3838

3939
- name: Install system dependencies
4040
run: |
@@ -98,7 +98,7 @@ jobs:
9898
tar -C package -czf "dist/sequencer-${TAG}-linux-${ARCH}.tar.gz" "sequencer-${TAG}-linux-${ARCH}"
9999
100100
- name: Upload artifact
101-
uses: actions/upload-artifact@v4
101+
uses: actions/upload-artifact@v6
102102
with:
103103
name: sequencer-linux-${{ matrix.arch }}
104104
path: dist/sequencer-*.tar.gz
@@ -108,7 +108,7 @@ jobs:
108108
runs-on: ubuntu-latest
109109
steps:
110110
- name: Checkout
111-
uses: actions/checkout@v4
111+
uses: actions/checkout@v5
112112

113113
- name: Install system dependencies
114114
run: |
@@ -205,7 +205,7 @@ jobs:
205205
tar -C examples/canonical-app/out -czf "dist/canonical-machine-image-${TAG}.tar.gz" canonical-machine-image
206206
207207
- name: Upload artifact
208-
uses: actions/upload-artifact@v4
208+
uses: actions/upload-artifact@v6
209209
with:
210210
name: canonical-machine-image
211211
path: dist/canonical-machine-image-*.tar.gz
@@ -218,7 +218,7 @@ jobs:
218218
- build-canonical-machine-image
219219
steps:
220220
- name: Download build artifacts
221-
uses: actions/download-artifact@v4
221+
uses: actions/download-artifact@v5
222222
with:
223223
path: dist
224224

@@ -243,4 +243,3 @@ jobs:
243243
files: |
244244
out/*.tar.gz
245245
out/SHA256SUMS
246-

examples/canonical-app/justfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ dapp_binary_sepolia := out_dir + "/dapp-sepolia"
1111
machine_image_sepolia := out_dir + "/canonical-machine-image-sepolia"
1212

1313
download-deps:
14-
mkdir -p {{out_dir}}
15-
if [[ ! -f {{linux_kernel}} ]]; then wget https://github.com/cartesi/image-kernel/releases/download/v0.20.0/linux-6.5.13-ctsi-1-v0.20.0.bin -O {{linux_kernel}}; fi
14+
@mkdir -p {{out_dir}}
15+
@if [[ ! -f {{linux_kernel}} ]]; then wget https://github.com/cartesi/image-kernel/releases/download/v0.20.0/linux-6.5.13-ctsi-1-v0.20.0.bin -O {{linux_kernel}}; fi
1616

1717
build-dapp: build-dapp-devnet
1818

examples/canonical-app/src/scheduler/mod.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ pub fn run_scheduler_forever<R: Rollup, A: Application>(
4949
Ok(RollupRequest::Inspect { .. }) => {
5050
rollup
5151
.emit_report(b"scheduler inspect endpoint not implemented")
52-
.unwrap_or_else(|err| {
53-
panic!("scheduler failed to emit inspect report: {err}")
54-
});
52+
.unwrap_or_else(|err| panic!("scheduler failed to emit inspect report: {err}"));
5553
}
5654
Err(err) => panic!("scheduler failed while reading next input: {err}"),
5755
}

justfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ test-sequencer:
1919
cargo test -p sequencer --test ws_broadcaster -- --test-threads=1
2020
cargo test -p sequencer --test batch_submitter_integration -- --test-threads=1
2121

22-
run-rollups-e2e: setup canonical-build-machine-image
22+
test-rollups-e2e: setup canonical-build-machine-image
2323
cargo build -p sequencer --bin sequencer-devnet
2424
cargo build -p rollups-e2e
2525
cargo run -p rollups-e2e

sequencer/src/input_reader/reader.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -523,8 +523,8 @@ mod tests {
523523
}
524524
.abi_encode();
525525

526-
let err = decode_input_box_address(&encoded)
527-
.expect_err("InputBoxAndEspresso should be rejected");
526+
let err =
527+
decode_input_box_address(&encoded).expect_err("InputBoxAndEspresso should be rejected");
528528
assert!(
529529
err.to_string()
530530
.contains("unsupported DataAvailability.InputBoxAndEspresso")

tests/benchmarks/justfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ default:
1212
@just --justfile tests/benchmarks/justfile --list
1313

1414
setup:
15-
mkdir -p tests/benchmarks/.deps
16-
if [[ ! -f {{anvil_dump_tar}} ]]; then if [[ -f {{root_anvil_dump_tar}} ]]; then cp {{root_anvil_dump_tar}} {{anvil_dump_tar}}; else wget {{anvil_dump_url}} -O {{anvil_dump_tar}}; fi; fi
17-
if [[ ! -f {{anvil_dump_dir}}/state.json ]]; then rm -rf {{anvil_dump_dir}}; mkdir -p {{anvil_dump_dir}}; tar -xzf {{anvil_dump_tar}} -C {{anvil_dump_dir}}; fi
15+
@mkdir -p tests/benchmarks/.deps
16+
@if [[ ! -f {{anvil_dump_tar}} ]]; then if [[ -f {{root_anvil_dump_tar}} ]]; then cp {{root_anvil_dump_tar}} {{anvil_dump_tar}}; else wget {{anvil_dump_url}} -O {{anvil_dump_tar}}; fi; fi
17+
@if [[ ! -f {{anvil_dump_dir}}/state.json ]]; then rm -rf {{anvil_dump_dir}}; mkdir -p {{anvil_dump_dir}}; tar -xzf {{anvil_dump_tar}} -C {{anvil_dump_dir}}; fi
1818
forge build --root tests/contracts
1919

2020
clean:

0 commit comments

Comments
 (0)