Skip to main content

ic_testkit/artifacts/
mod.rs

1//! Host-side artifact discovery, freshness, and Wasm build helpers.
2//!
3//! These functions keep integration-test artifacts in caller-selected target
4//! directories and contain no application-specific package or profile policy.
5//! Independent Wasm batches remain sequential; [`WasmBuildSession`] adds only
6//! explicit cross-call resolution reuse under a caller-held source lease.
7
8mod cache_fs;
9mod digest;
10mod icp;
11mod tool;
12mod transaction;
13mod transaction_batch;
14mod wasm;
15mod wasm_batch;
16mod wasm_cache;
17mod workspace;
18
19#[cfg(test)]
20mod test_support;
21
22pub use cache_fs::{ArtifactCacheMaintenance, ArtifactCachePrunePolicy, ArtifactCachePruneReport};
23pub use digest::InputDigest;
24pub use icp::{
25    WatchedInputSnapshot, icp_artifact_ready_for_build, icp_artifact_ready_with_snapshot,
26};
27pub use tool::resolve_executable;
28pub use transaction::{
29    ArtifactBuildTransaction, ArtifactCacheArtifact, ArtifactCacheError, ArtifactCacheOutcome,
30    ArtifactCachePreparation, ArtifactCacheRecord, ArtifactCacheSpec, ArtifactCacheTimings,
31    ArtifactOutputValidation, prepare_artifact_cache, prune_artifact_cache,
32};
33pub use transaction_batch::{
34    ArtifactCacheBatchContractError, ArtifactCacheBatchEntry, ArtifactCacheBatchFailedEntry,
35    ArtifactCacheBatchFailure, ArtifactCacheBatchFailurePhase, ArtifactCacheBatchFailureTimings,
36    ArtifactCacheBatchMetrics, ArtifactCacheBatchOutcomeEntry, ArtifactCacheBatchReport,
37    LabeledArtifactCacheSpec, build_artifact_caches_batch,
38};
39pub use wasm::{read_wasm, wasm_artifacts_ready, wasm_path};
40pub use wasm_batch::{
41    LabeledWasmBuildSpec, WasmBuildBatchConfig, WasmBuildBatchContractError, WasmBuildBatchEntry,
42    WasmBuildBatchFailure, WasmBuildBatchMaintenanceEntry, WasmBuildBatchMetrics,
43    WasmBuildBatchOutcomeEntry, WasmBuildBatchProgressEvent, WasmBuildBatchReport,
44    WasmBuildFailureDetails, WasmBuildSession, WasmBuildSessionMetrics,
45    build_wasm_canisters_cached_batch, build_wasm_canisters_cached_batch_with_config,
46    build_wasm_canisters_cached_batch_with_config_and_progress,
47    build_wasm_canisters_cached_batch_with_progress,
48};
49pub use wasm_cache::{
50    CargoBuildInput, ResolvedCargoBuildInputs, SharedIncrementalTargetInspection,
51    SharedIncrementalTargetMaintenance, SharedIncrementalTargetMaintenanceConfig,
52    SharedIncrementalTargetMaintenanceFailureMode, SharedIncrementalTargetMaintenanceOutcome,
53    SharedIncrementalTargetPrunePolicy, WasmBuildCacheMode, WasmBuildError, WasmBuildFailurePhase,
54    WasmBuildFailureTimings, WasmBuildOutcome, WasmBuildOutputStream, WasmBuildPhase,
55    WasmBuildProgressConfig, WasmBuildProgressEvent, WasmBuildProgressOutcome,
56    WasmBuildProgressPhase, WasmBuildRecord, WasmBuildSpec, WasmBuildTimings,
57    WasmInputResolutionTimings, build_wasm_canisters_cached,
58    build_wasm_canisters_cached_with_progress, inspect_shared_incremental_target,
59    maintain_shared_incremental_target, maintain_shared_incremental_target_at_most_every,
60    prune_wasm_build_cache, resolve_cargo_build_inputs,
61};
62pub use workspace::{test_target_dir, workspace_root_for};