cli: add --skip-build flag to publish command (#1841)

This commit is contained in:
Italo Casas 2022-05-03 09:48:51 -04:00 committed by GitHub
parent e6155dbc7d
commit a298bcd650
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 20 deletions

View File

@ -12,6 +12,8 @@ The minor version will be incremented upon a breaking change and the patch versi
### Features
* cli: Add `--skip-build` to `anchor publish` ([#1786](https://github.
com/project-serum/anchor/pull/1841)).
* cli: Add `--program-keypair` to `anchor deploy` ([#1786](https://github.com/project-serum/anchor/pull/1786)).
* spl: Add more derived traits to `TokenAccount` to `Mint` ([#1818](https://github.com/project-serum/anchor/pull/1818)).
* cli: Add compilation optimizations to cli template ([#1807](https://github.com/project-serum/anchor/pull/1807)).
@ -621,4 +623,4 @@ Initial release.
* spl: `anchor-spl` crate providing CPI clients for Anchor programs.
* client: `anchor-client` crate providing Rust clients for Anchor programs.
* ts: `@project-serum/anchor` package for generating TypeScript clients.
* cli: Command line interface for managing Anchor programs.
* cli: Command line interface for managing Anchor programs.

View File

@ -258,6 +258,10 @@ pub enum Command {
last = true
)]
cargo_args: Vec<String>,
/// Flag to skip building the program in the workspace,
/// use this to save time when publishing the program
#[clap(long)]
skip_build: bool,
},
/// Keypair commands.
Keys {
@ -470,7 +474,8 @@ pub fn entry(opts: Opts) -> Result<()> {
Command::Publish {
program,
cargo_args,
} => publish(&opts.cfg_override, program, cargo_args),
skip_build,
} => publish(&opts.cfg_override, program, cargo_args, skip_build),
Command::Keys { subcmd } => keys(&opts.cfg_override, subcmd),
Command::Localnet {
skip_build,
@ -2845,6 +2850,7 @@ fn publish(
cfg_override: &ConfigOverride,
program_name: String,
cargo_args: Vec<String>,
skip_build: bool,
) -> Result<()> {
// Discover the various workspace configs.
let cfg = Config::discover(cfg_override)?.expect("Not in workspace.");
@ -2956,24 +2962,23 @@ fn publish(
unpack_archive(&tarball_filename)?;
// Build the program before sending it to the server.
build(
cfg_override,
None,
None,
true,
false,
Some(program_name),
None,
None,
BootstrapMode::None,
None,
None,
cargo_args,
true,
)?;
// Success. Now we can finally upload to the server without worrying
// about a build failure.
if !skip_build {
build(
cfg_override,
None,
None,
true,
false,
Some(program_name),
None,
None,
BootstrapMode::None,
None,
None,
cargo_args,
true,
)?;
}
// Upload the tarball to the server.
let token = registry_api_token(cfg_override)?;