mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2024-11-14 20:52:03 +01:00
kjuulh
c14cd64453
This will make the api much easier to use, as we can now rely on "" instead of "".into() for normal string values. Introduced builder as well, which makes it much easier to use *Opts, as it can handle the building of that, and get the benefits from String -> &str, as that is currently not allowed for optional values
38 lines
999 B
Rust
38 lines
999 B
Rust
use dagger_sdk::HostDirectoryOpts;
|
|
|
|
fn main() -> eyre::Result<()> {
|
|
let client = dagger_sdk::connect()?;
|
|
|
|
let host_source_dir = client.host().directory(
|
|
"examples/build-the-application/app",
|
|
Some(HostDirectoryOpts {
|
|
exclude: Some(vec!["node_modules".into(), "ci/".into()]),
|
|
include: None,
|
|
marker: std::marker::PhantomData,
|
|
}),
|
|
);
|
|
|
|
let source = client
|
|
.container(None)
|
|
.from("node:16")
|
|
.with_mounted_directory("/src", host_source_dir.id()?);
|
|
|
|
let runner = source
|
|
.with_workdir("/src")
|
|
.with_exec(vec!["npm", "install"], None);
|
|
|
|
let test = runner.with_exec(vec!["npm", "test", "--", "--watchAll=false"], None);
|
|
|
|
let build_dir = test
|
|
.with_exec(vec!["npm", "run", "build"], None)
|
|
.directory("./build");
|
|
|
|
let _ = build_dir.export("./build");
|
|
|
|
let entries = build_dir.entries(None);
|
|
|
|
println!("build dir contents: \n {:?}", entries);
|
|
|
|
Ok(())
|
|
}
|