From 8674cfbbffe8b720b1b799b62953a6f5383c90e7 Mon Sep 17 00:00:00 2001 From: rzadp Date: Thu, 8 Aug 2024 18:55:35 +0200 Subject: [PATCH] CI for producing blocks --- .github/workflows/ci.yml | 54 +++++++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf6dfb2..ad60800 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ concurrency: cancel-in-progress: true jobs: - ci: + build: runs-on: ${{ matrix.os }} strategy: matrix: @@ -68,14 +68,56 @@ jobs: run: SKIP_WASM_BUILD=1 cargo doc --workspace --no-deps timeout-minutes: 15 - # This is mentioned as example in the README: - - name: Build the node individually in release mode + run-node: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - uses: actions/checkout@v4 + + - name: Rust compilation prerequisites (Ubuntu) + if: contains(matrix.os, 'ubuntu') run: | - # Save some space from debug builds - rm -rf ./target - cargo build --package minimal-template-node --release + sudo apt update + sudo apt install -y \ + protobuf-compiler + rustup target add wasm32-unknown-unknown + rustup component add rustfmt clippy rust-src + + - name: Install Cargo (MacOS) + if: contains(matrix.os, 'macos') + run: | + curl https://sh.rustup.rs -sSf -y | sh + brew install protobuf + rustup target add wasm32-unknown-unknown --toolchain stable-aarch64-apple-darwin + rustup component add rust-src --toolchain stable-aarch64-apple-darwin + + # We've run into out-of-disk error when compiling Polkadot in the next step, so we free up some space this way. + - name: Free Disk Space (Ubuntu) + if: contains(matrix.os, 'ubuntu') + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # 1.3.1 + with: + android: true # This alone is a 12 GB save. + # We disable the rest because it caused some problems. (they're enabled by default) + # The Android removal is enough. + dotnet: false + haskell: false + large-packages: false + swap-storage: false + + - name: Build the node individually in release mode + run: cargo build --package minimal-template-node --release timeout-minutes: 90 + - name: Make sure the node is producing blocks + run: | + ./target/release/minimal-template-node --dev 2>&1 | tee out.txt & + until curl -s '127.0.0.1:9944'; do sleep 5; done + until cat out.txt | grep -s "Imported #2"; do sleep 5; done + shell: bash + timeout-minutes: 5 + build-docker: runs-on: ubuntu-latest steps: