set up CI (#45)

* begin to setup ci

* attempt to fix build

* fix paths in build script

* fix

* satisfy clippy

* update fmt check to use nightly

* use nightly for build

* fmt

* fix fmt install

* update test script

* try to fix fmt

* merge w develop

* maybe fix build script

* install wasm toolchain

* install solc-select, use stable rust to build

* Correct clippy warnings

Currently intended to be done with:
cargo clippy --features "recommended merlin batch serialize experimental 
ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity 
-A dead_code

* Remove try-runtime

I tried to get this to work for an hour. I have no idea why it doesn't, 
yet it doesn't.

* Rewrite workflow

Splits tasks into a more modular structure. Also uses 
actions-rs/toolchain.

* Add a cache

* Immediately try building ETH/Monero while this is fixed

Adds solc-select use.

* Revert selective advance building of ETH/XMR

ETH builds now, so it hopefully should work now.

Also moves from on push to on push to develop.

* Install Monero runtime dependencies

Specify missing Rust toolchain setting.

* Correct multi-line commands

* Fix multi-line commands again

Cache Ethereum artifacts.

* Add Foundry

* Move Clippy under build

* Minimal rustup

Adds wasm Clippy. Puts Clippy before build.

* Use nightly clippy

* Remove old clippy call from under build

* Have the Monero build script support ARCH specification

Requirement for CI.

* Add WASM toolchain to tests

* Remove Ethereum cache which did not work as needed

* Remove extraneous quotes which broke builds on Arch

Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
This commit is contained in:
noot
2022-07-22 12:31:29 -04:00
committed by GitHub
parent 76a7160ea5
commit bd93d6ec8a
8 changed files with 293 additions and 120 deletions

View File

@@ -49,13 +49,9 @@ frame-benchmarking-cli = { git = "https://github.com/serai-dex/substrate" }
serai-consensus = { path = "../consensus" }
serai-runtime = { path = "../runtime" }
# CLI-specific dependencies
try-runtime-cli = { git = "https://github.com/serai-dex/substrate", optional = true }
[build-dependencies]
substrate-build-script-utils = { git = "https://github.com/serai-dex/substrate.git" }
[features]
default = []
runtime-benchmarks = ["serai-runtime/runtime-benchmarks"]
try-runtime = ["serai-runtime/try-runtime", "try-runtime-cli"]

View File

@@ -40,14 +40,6 @@ pub enum Subcommand {
#[clap(subcommand)]
Benchmark(frame_benchmarking_cli::BenchmarkCmd),
/// Try some command against the runtime state
#[cfg(feature = "try-runtime")]
TryRuntime(try_runtime_cli::TryRuntimeCmd),
/// Try some command against the runtime state. Note: `try-runtime` feature must be enabled
#[cfg(not(feature = "try-runtime"))]
TryRuntime,
/// DB meta columns information
ChainInfo(sc_cli::ChainInfoCmd),
}

View File

@@ -114,21 +114,6 @@ pub fn run() -> sc_cli::Result<()> {
BenchmarkCmd::Machine(cmd) => cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone()),
}),
#[cfg(feature = "try-runtime")]
Some(Subcommand::TryRuntime(cmd)) => cli.create_runner(cmd)?.async_run(|config| {
Ok((
cmd.run::<Block, service::ExecutorDispatch>(config),
sc_service::TaskManager::new(
config.tokio_handle.clone(),
config.prometheus_config.as_ref().map(|cfg| &cfg.registry),
)
.map_err(|e| sc_cli::Error::Service(sc_service::Error::Prometheus(e)))?,
))
}),
#[cfg(not(feature = "try-runtime"))]
Some(Subcommand::TryRuntime) => Err("TryRuntime wasn't enabled when building the node".into()),
Some(Subcommand::ChainInfo(cmd)) => {
cli.create_runner(cmd)?.sync_run(|config| cmd.run::<Block>(&config))
}