adding checker script to ci #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Checker Script CI | |
on: | |
pull_request: | |
branches: | |
- main | |
- master | |
jobs: | |
run-checker: | |
runs-on: ubuntu-latest | |
steps: | |
# Step 1: Checkout the code from the repository | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# Step 2: Set up Rust environment (required for cargo stylus commands) | |
- name: Set up Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
# Step 3: Install the wasm32-unknown-unknown target and update Rust | |
- name: Install wasm32-unknown-unknown target and update Rust | |
run: | | |
rustup update stable | |
rustup target add wasm32-unknown-unknown | |
# Step 4: Loop through directories inside applications and basic_examples | |
- name: Install Rust toolchain per directory | |
run: | | |
for dir in example_code/applications/* example_code/basic_examples/*; do | |
if [[ -d "$dir" && -f "$dir/rust-toolchain.toml" ]]; then | |
echo "Installing Rust toolchain for directory: $dir" | |
toolchain_version=$(grep '^channel' "$dir/rust-toolchain.toml" | cut -d '"' -f 2) | |
if rustup toolchain install "$toolchain_version"; then | |
echo "Toolchain $toolchain_version installed for $dir" | |
rustup override set "$toolchain_version" --path "$dir" | |
else | |
echo "Failed to install toolchain $toolchain_version for $dir" | |
exit 1 | |
fi | |
else | |
echo "No rust-toolchain.toml found for $dir, skipping." | |
fi | |
done | |
# Step 5: Install cargo-stylus | |
- name: Install cargo-stylus | |
run: cargo install cargo-stylus | |
# Step 6: Make checker.sh executable | |
- name: Make checker.sh executable | |
run: chmod +x ./checker.sh | |
# Step 7: Run the checker.sh script (it will fetch the latest SDK version) | |
- name: Run checker script | |
run: ./checker.sh | |
# Step 8: Check for the existence of check_results.log and fail if missing | |
- name: Ensure check_results.log exists | |
run: | | |
if [ ! -f check_results.log ]; then | |
echo "check_results.log not found! Failing the check." | |
exit 1 | |
fi | |
# Step 9: Check for issues in the log file | |
- name: Check for issues in the log | |
run: | | |
if grep -q "FAILED" check_results.log; then | |
echo "Checker script failed! Fix the issues before merging." | |
exit 1 | |
else | |
echo "Checker script passed! Ready to merge." | |
fi |