From 8674cfbbffe8b720b1b799b62953a6f5383c90e7 Mon Sep 17 00:00:00 2001 From: rzadp Date: Thu, 8 Aug 2024 18:55:35 +0200 Subject: [PATCH 1/3] 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: From e2f2ca7da247682f49bd5354bebba56838d08d02 Mon Sep 17 00:00:00 2001 From: rzadp Date: Thu, 8 Aug 2024 20:01:11 +0200 Subject: [PATCH 2/3] extract composite actions --- .github/actions/free-disk-space/action.yml | 16 ++++ .github/actions/macos-dependencies/action.yml | 12 +++ .../actions/ubuntu-dependencies/action.yml | 15 ++++ .github/workflows/ci.yml | 82 +++---------------- 4 files changed, 56 insertions(+), 69 deletions(-) create mode 100644 .github/actions/free-disk-space/action.yml create mode 100644 .github/actions/macos-dependencies/action.yml create mode 100644 .github/actions/ubuntu-dependencies/action.yml diff --git a/.github/actions/free-disk-space/action.yml b/.github/actions/free-disk-space/action.yml new file mode 100644 index 0000000..d2a9a7b --- /dev/null +++ b/.github/actions/free-disk-space/action.yml @@ -0,0 +1,16 @@ +name: Free disk space +description: We've run into out-of-disk error when compiling Rust projects, so we free up some space this way. + +runs: + using: "composite" + steps: + - name: Free Disk Space + 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 diff --git a/.github/actions/macos-dependencies/action.yml b/.github/actions/macos-dependencies/action.yml new file mode 100644 index 0000000..2349d24 --- /dev/null +++ b/.github/actions/macos-dependencies/action.yml @@ -0,0 +1,12 @@ +name: Install macOS dependencies +description: Installs dependencies required to compile the template on macOS + +runs: + using: "composite" + steps: + - 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 + shell: bash diff --git a/.github/actions/ubuntu-dependencies/action.yml b/.github/actions/ubuntu-dependencies/action.yml new file mode 100644 index 0000000..c577567 --- /dev/null +++ b/.github/actions/ubuntu-dependencies/action.yml @@ -0,0 +1,15 @@ +name: Install Ubuntu dependencies +description: Installs dependencies required to compile the template in Ubuntu + +runs: + using: "composite" + steps: + - name: Rust compilation prerequisites (Ubuntu) + if: contains(matrix.os, 'ubuntu') + run: | + sudo apt update + sudo apt install -y \ + protobuf-compiler + rustup target add wasm32-unknown-unknown + rustup component add rustfmt clippy rust-src + shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad60800..ecbbf38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,35 +20,12 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Rust compilation prerequisites (Ubuntu) - if: contains(matrix.os, 'ubuntu') - run: | - 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 + - if: contains(matrix.os, 'ubuntu') + uses: ./.github/actions/free-disk-space + - if: contains(matrix.os, 'ubuntu') + uses: ./.github/actions/ubuntu-dependencies + - if: contains(matrix.os, 'macos') + uses: ./.github/actions/macos-dependencies - name: Build the template run: cargo build @@ -76,35 +53,12 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Rust compilation prerequisites (Ubuntu) - if: contains(matrix.os, 'ubuntu') - run: | - 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 + - if: contains(matrix.os, 'ubuntu') + uses: ./.github/actions/free-disk-space + - if: contains(matrix.os, 'ubuntu') + uses: ./.github/actions/ubuntu-dependencies + - if: contains(matrix.os, 'macos') + uses: ./.github/actions/macos-dependencies - name: Build the node individually in release mode run: cargo build --package minimal-template-node --release @@ -123,17 +77,7 @@ jobs: steps: - uses: actions/checkout@v4 - # 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) - 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 + - uses: ./.github/actions/free-disk-space - name: Build the Dockerfile run: docker build . -t polkadot-sdk-minimal-template From a1c9ebef84f8bfb0854fdc2f3f6f31c61d338d4d Mon Sep 17 00:00:00 2001 From: rzadp Date: Thu, 8 Aug 2024 20:05:05 +0200 Subject: [PATCH 3/3] different shell needed? --- .github/actions/macos-dependencies/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/macos-dependencies/action.yml b/.github/actions/macos-dependencies/action.yml index 2349d24..17495a5 100644 --- a/.github/actions/macos-dependencies/action.yml +++ b/.github/actions/macos-dependencies/action.yml @@ -9,4 +9,4 @@ runs: brew install protobuf rustup target add wasm32-unknown-unknown --toolchain stable-aarch64-apple-darwin rustup component add rust-src --toolchain stable-aarch64-apple-darwin - shell: bash + shell: sh