Build Substrate and Polkadot Binaries #136
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: ubuntu-latest-16-cores | |
steps: | |
- name: checkout polkadot-sdk | |
uses: actions/checkout@v4 | |
with: | |
repository: paritytech/polkadot-sdk | |
- name: Install dependencies | |
run: sudo apt-get install -y protobuf-compiler | |
- name: Install WASM toolchain | |
run: rustup target add wasm32-unknown-unknown | |
- name: Install WASM toolchain | |
run: rustup component add rust-src | |
- name: Rust Cache | |
uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 | |
- 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@v3 | |
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@v3 | |
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 |