Build Substrate and Polkadot Binaries #279
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: Build Substrate and Polkadot Binaries | |
on: | |
# Allow it to be manually ran to rebuild binary when needed: | |
workflow_dispatch: {} | |
# Run at 2am every day for nightly builds. | |
schedule: | |
- cron: "0 2 * * *" | |
jobs: | |
tests: | |
name: Build Substrate and Polkadot Binaries | |
runs-on: parity-large | |
steps: | |
- name: checkout polkadot-sdk | |
uses: actions/checkout@v4 | |
with: | |
repository: paritytech/polkadot-sdk | |
- name: Install dependencies | |
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler curl gcc make clang cmake | |
- name: Install Rust stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
components: rust-src | |
target: wasm32-unknown-unknown | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab # v2.7.5 | |
- name: build substrate binary | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --manifest-path substrate/bin/node/cli/Cargo.toml | |
- name: build polkadot binary | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --manifest-path polkadot/Cargo.toml | |
- name: Strip binaries | |
run: | | |
cargo install cargo-strip | |
cargo strip | |
- name: upload substrate binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nightly-substrate-binary | |
path: target/release/substrate-node | |
retention-days: 2 | |
if-no-files-found: error | |
# Note: Uncompressed polkadot binary is ~124MB -> too large for git (max 100MB) without git lfs. Compressed it is only ~45MB | |
- name: compress polkadot binary | |
run: | | |
tar -zcvf target/release/polkadot.tar.gz target/release/polkadot | |
- name: upload polkadot binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: nightly-polkadot-binary | |
path: | | |
target/release/polkadot.tar.gz | |
target/release/polkadot-execute-worker | |
target/release/polkadot-prepare-worker | |
retention-days: 2 | |
if-no-files-found: error |