From 5099044bf47010e6cd7bcaaac32c59958a2b880f Mon Sep 17 00:00:00 2001 From: nojob1 <104243625+nojob1@users.noreply.github.com> Date: Tue, 7 Feb 2023 02:49:07 -0800 Subject: [PATCH] add --skip-build option for verify command (#2387) --- CHANGELOG.md | 1 + cli/src/lib.rs | 41 +++++++++++++++++++++++++---------------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28a0730aed..0616d8e944 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ The minor version will be incremented upon a breaking change and the patch versi - cli: Add `idl close` command to close a program's IDL account ([#2329](https://github.com/coral-xyz/anchor/pull/2329)). - cli: `idl init` now supports very large IDL files ([#2329](https://github.com/coral-xyz/anchor/pull/2329)). - spl: Add `transfer_checked` function ([#2353](https://github.com/coral-xyz/anchor/pull/2353)). +- cli: Add `--skip-build` option to the verify command ([#2387](https://github.com/coral-xyz/anchor/pull/2387)). - client: Add support for multithreading to the rust client: use flag `--multithreaded` ([#2321](https://github.com/coral-xyz/anchor/pull/2321)). - client: Add `async_rpc` a method which returns a nonblocking solana rpc client ([2322](https://github.com/coral-xyz/anchor/pull/2322)). diff --git a/cli/src/lib.rs b/cli/src/lib.rs index 9ce91f2ed7..b8729c5d17 100644 --- a/cli/src/lib.rs +++ b/cli/src/lib.rs @@ -150,6 +150,10 @@ pub enum Command { /// Arguments to pass to the underlying `cargo build-bpf` command. #[clap(required = false, last = true)] cargo_args: Vec, + /// Flag to skip building the program in the workspace, + /// use this to save time when running verify and the program code is already built. + #[clap(long, required = false)] + skip_build: bool, }, #[clap(name = "test", alias = "t")] /// Runs integration tests against a localnetwork. @@ -432,6 +436,7 @@ pub fn entry(opts: Opts) -> Result<()> { bootstrap, env, cargo_args, + skip_build, } => verify( &opts.cfg_override, program_id, @@ -441,6 +446,7 @@ pub fn entry(opts: Opts) -> Result<()> { bootstrap, env, cargo_args, + skip_build, ), Command::Clean => clean(&opts.cfg_override), Command::Deploy { @@ -1349,6 +1355,7 @@ fn verify( bootstrap: BootstrapMode, env_vars: Vec, cargo_args: Vec, + skip_build: bool, ) -> Result<()> { // Change to the workspace member directory, if needed. if let Some(program_name) = program_name.as_ref() { @@ -1361,22 +1368,24 @@ fn verify( // Build the program we want to verify. let cur_dir = std::env::current_dir()?; - build( - cfg_override, - None, // idl - None, // idl ts - true, // verifiable - true, // skip lint - None, // program name - solana_version.or_else(|| cfg.solana_version.clone()), // solana version - docker_image, // docker image - bootstrap, // bootstrap docker image - None, // stdout - None, // stderr - env_vars, - cargo_args, - false, - )?; + if !skip_build { + build( + cfg_override, + None, // idl + None, // idl ts + true, // verifiable + true, // skip lint + None, // program name + solana_version.or_else(|| cfg.solana_version.clone()), // solana version + docker_image, // docker image + bootstrap, // bootstrap docker image + None, // stdout + None, // stderr + env_vars, + cargo_args, + false, + )?; + } std::env::set_current_dir(cur_dir)?; // Verify binary.