Skip to content

Commit

Permalink
feat(ci): add rv32im compilation checks (#12925)
Browse files Browse the repository at this point in the history
  • Loading branch information
zobront authored Nov 29, 2024
1 parent 3f9816e commit 599b808
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
61 changes: 61 additions & 0 deletions .github/assets/check_rv32imac.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/usr/bin/env bash
set +e # Disable immediate exit on error

# Array of crates to check
crates_to_check=(
reth-codecs-derive
# reth-evm
# reth-primitives
# reth-primitives-traits
# reth-optimism-forks
# reth-optimism-chainspec
)

# Array to hold the results
results=()
# Flag to track if any command fails
any_failed=0

for crate in "${crates_to_check[@]}"; do
cmd="cargo +stable build -p $crate --target riscv32imac-unknown-none-elf --no-default-features"

if [ -n "$CI" ]; then
echo "::group::$cmd"
else
printf "\n%s:\n %s\n" "$crate" "$cmd"
fi

set +e # Disable immediate exit on error
# Run the command and capture the return code
$cmd
ret_code=$?
set -e # Re-enable immediate exit on error

# Store the result in the dictionary
if [ $ret_code -eq 0 ]; then
results+=("1:✅:$crate")
else
results+=("2:❌:$crate")
any_failed=1
fi

if [ -n "$CI" ]; then
echo "::endgroup::"
fi
done

# Sort the results by status and then by crate name
IFS=$'\n' sorted_results=($(sort <<<"${results[*]}"))
unset IFS

# Print summary
echo -e "\nSummary of build results:"
for result in "${sorted_results[@]}"; do
status="${result#*:}"
status="${status%%:*}"
crate="${result##*:}"
echo "$status $crate"
done

# Exit with a non-zero status if any command fails
exit $any_failed
16 changes: 16 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,22 @@ jobs:
- name: Run Wasm checks
run: .github/assets/check_wasm.sh

riscv:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
target: riscv32imac-unknown-none-elf
- uses: taiki-e/install-action@cargo-hack
- uses: Swatinem/rust-cache@v2
with:
cache-on-failure: true
- uses: dcarbone/install-jq-action@v3
- name: Run RISC-V checks
run: .github/assets/check_rv32imac.sh

crate-checks:
runs-on: ubuntu-latest
timeout-minutes: 30
Expand Down

0 comments on commit 599b808

Please sign in to comment.