Skip to main content

Running Deployments

After you've created and registered your upgrade, you'll need to execute it in your target environment.

Starting a Deployment

To start a deployment, use the zeus deploy run command:

zeus deploy run --upgrade <directory-name> --env <env-name>

Where:

  • <directory-name> is the name of your upgrade directory
  • <env-name> is the name of your target environment

Handling Multi-phase Deployments

Zeus deployments may halt periodically between steps, especially when a multisig transaction requires approval. To resume a deployment after a halt:

zeus deploy run --resume --env <env-name>

Monitoring Deployment Status

To check the status of a running deployment:

zeus deploy status --env <env-name>

This shows the current state of your deployment, including completed steps and any pending transactions.

Verifying Deployed Contracts

During or after a deployment, you can verify that the contracts deployed match the expected bytecode:

zeus deploy verify --env <env-name>

This compares your local bytecode (with immutable references zeroed out) against the bytecode available on-chain.

Note: Ensure your foundry version (forge --version) matches the one used during deployment, as differences in forge versions can affect hash calculations.

When you verify contracts and are logged in with write access to the Zeus host, a verification record is automatically added to your metadata repository.

Cancelling a Deployment

If needed, you can cancel a deployment:

zeus deploy cancel --env <env-name>

For multisig transactions, Zeus will attempt to propose an alternate null transaction to overwrite the nonce on-chain. Note that EOA transactions are not cancellable if they have already been executed.

Environment Updates

Zeus environments are updated with new contract addresses and parameters only after a successful deployment. If a deployment fails, gets cancelled, or aborts, the environment in Zeus will not reflect any updated parameters.

Next Steps