Run npm install as part of build.rs too

This commit is contained in:
Igor Katson 2024-08-12 20:24:05 +01:00
parent 2c71cc1dbb
commit b2c241c3d8
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5
2 changed files with 29 additions and 21 deletions

View file

@ -21,9 +21,6 @@ jobs:
rustup toolchain install ${{ matrix.rust_version }}
- uses: actions/checkout@v4
- run: rustup override set ${{ matrix.rust_version }}
- name: npm install (librqbit/webui)
working-directory: crates/librqbit/webui
run: npm install
- name: cargo check
run: cargo check
test:
@ -32,8 +29,5 @@ jobs:
- uses: actions/checkout@v4
- run: rustup toolchain install stable --profile minimal
- uses: Swatinem/rust-cache@v2
- name: npm install (librqbit/webui)
working-directory: crates/librqbit/webui
run: npm install
- name: Run tests
run: cargo test

View file

@ -9,22 +9,36 @@ fn main() {
println!("cargo:rerun-if-changed={}", webui_src_dir.to_str().unwrap());
// Run "npm run build" in the webui directory
let output = Command::new("npm")
.arg("run")
.arg("build")
.current_dir(webui_dir)
.output()
.expect("Failed to execute npm run build");
// Run "npm install && npm run build" in the webui directory
for (cmd, args) in [
("npm", ["install"].as_slice()),
("npm", ["run", "build"].as_slice()),
] {
// Run "npm install" in the webui directory
let output = Command::new(cmd)
.args(args)
.current_dir(webui_dir)
.output()
.unwrap_or_else(|_| {
panic!(
"Failed to execute {} {} in {:?}",
cmd,
args.join(" "),
webui_dir
)
});
if !output.status.success() {
panic!(
"npm run build failed with output: {}",
String::from_utf8_lossy(&output.stderr)
);
if !output.status.success() {
panic!(
"{} {} failed with output: {}",
cmd,
args.join(" "),
String::from_utf8_lossy(&output.stderr)
);
}
// Optionally print the stdout output if you want to see the build logs
println!("{}", String::from_utf8_lossy(&output.stdout));
}
// Optionally print the stdout output if you want to see the build logs
println!("{}", String::from_utf8_lossy(&output.stdout));
}
}