name: CI on: pull_request: push: branches: - main - master concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: ci: 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: | 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 template run: cargo build timeout-minutes: 90 - name: Build the node individually in release mode run: cargo build --package minimal-template-node --release timeout-minutes: 90 - name: Run clippy run: | SKIP_WASM_BUILD=1 cargo clippy --all-targets --locked --workspace --quiet SKIP_WASM_BUILD=1 cargo clippy --all-targets --all-features --locked --workspace --quiet timeout-minutes: 30 - name: Run the tests run: SKIP_WASM_BUILD=1 cargo test timeout-minutes: 15 - name: Build the docs run: SKIP_WASM_BUILD=1 cargo doc --workspace --no-deps timeout-minutes: 15 build-docker: runs-on: ubuntu-latest 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 - name: Build the Dockerfile run: docker build . -t polkadot-sdk-minimal-template timeout-minutes: 90