Skip to content

BIT-353: BIT-353 change cargo profiles a bit #51

BIT-353: BIT-353 change cargo profiles a bit

BIT-353: BIT-353 change cargo profiles a bit #51

Workflow file for this run

name: Build wasm, chainspec and publish release
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
##
on:
##
# Run when a semantic version is tagged
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
##
# Alternatives triggers
branches:
- "BIT-353-create-deterministic-wasm-builds-on-github-tag"
workflow_dispatch:
##
# Environment variables shared for all targets
env:
CARGO_TERM_COLOR: always
RELEASE: true
RELEASE_NAME: release
RUSTFLAGS: -A warnings
RUST_BACKTRACE: full
SKIP_WASM_BUILD: 1
VERBOSE: ${{ github.events.input.verbose }}
##
# Test and build and publish
jobs:
check:
name: Testing, building and publishing for ${{ matrix.rust-target }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
##
# Define multiple targets for builds and tests
strategy:
matrix:
chain:
- node-subtensor
rust-toolchain:
- nightly-2023-03-01
rust-target:
- wasm32-unknown-unknown
os:
- self-hosted
##
# Environment variables specific to each target
env:
RUST_BIN_DIR: target/${{ matrix.rust-target }}/release
RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }}
TARGET: ${{ matrix.rust-target }}
##
steps:
- name: Check-out repository under ${{ github.workspace }}
uses: actions/checkout@v2
- name: 🔧 Install dependencies
run: |
./scripts/install-deps.sh
- name: 🔧 Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust-toolchain }}
target: ${{ matrix.rust-target }}
override: true
profile: minimal
#- name: ⚡ Cache
# uses: actions/cache@v3
# continue-on-error: false
# with:
# path: |
# ~/.cargo/bin/
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# target/
# key: ${{ matrix.rust-target }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: ⚡ Cache dependencies
uses: Swatinem/[email protected]
- name: ⚡ Run sccache-cache
uses: mozilla-actions/[email protected]
- name: 🔎 Test
run: |
cargo test --tests --profile ci-test
- name: 🚀 Build executable
run: |
cargo build --profile ci-release
- name: Srtool build
id: srtool_build
uses: chevdor/[email protected]
env:
RUSTUP_TOOLCHAIN: ${{ matrix.rust-toolchain }}
TARGET: ${{ matrix.rust-target }}
#BUILD_OPTS: ""
with:
chain: ${{ matrix.chain }}
runtime_dir: runtime
package: node-subtensor-runtime
- name: Srtool summary
run: |
echo '${{ steps.srtool_build.outputs.json }}' | jq . > ${{ matrix.chain }}-srtool-digest.json
cat ${{ matrix.chain }}-srtool-digest.json
echo "Runtime location: ${{ steps.srtool_build.outputs.wasm }}"
- name: Create chainspec
run: |
target/${{ matrix.rust-target }}/release/node-subtensor build-spec --disable-default-bootnode --raw --chain finney > release_chainspec.json
## TODO: double-check `artifacts` path(s) be correct
# :warning: values for the following must always match;
# - RUST_BIN_DIR
# - target/${{ matrix.rust-target }}/release/node-subtensor
- name: Create Release
uses: ncipollo/[email protected]
with:
allowUpdates: false
artifactErrorsFailBuild: true
bodyFile: CHANGELOG.md
makeLatest: true
tag: ${{ github.ref }}-${{ matrix.rust-target }}
name: Release ${{ github.ref }} for ${{ matrix.rust-target }}
artifacts: 'release_chainspec.json,target/${{ matrix.rust-target }}/release/node-subtensor,${{ steps.srtool_build.outputs.wasm_compressed }}'