From 4650b52b4e619eea06c58ffcdaa8809c58f64e4b Mon Sep 17 00:00:00 2001 From: Silas Groh Date: Tue, 4 Mar 2025 23:24:29 +0100 Subject: [PATCH] ci: also commit generated js pkgs --- .github/workflows/main.yml | 14 +++++++++++--- xtask/src/build_js_langs.rs | 7 +++++-- xtask/src/update_vite_example.rs | 7 +++++-- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5e7d090c7..e0658ea76 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,6 +27,8 @@ jobs: - name: Restore Cache uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true - name: Run Codegen run: cargo xtask codegen @@ -63,6 +65,8 @@ jobs: - name: Restore Cache uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true - name: Run Codegen run: cargo xtask codegen @@ -120,15 +124,18 @@ jobs: - name: Restore Cache uses: Swatinem/rust-cache@v2 - - - name: Create SVGs - run: cargo xtask codegen queries && cargo xtask theme-svgs + with: + cache-on-failure: true - name: Generate Code run: cargo xtask codegen + - name: Create SVGs + run: cargo xtask theme-svgs + - name: Update Vite Example run: cargo xtask update-vite-example + continue-on-error: true - name: Commit changes uses: EndBug/add-and-commit@v9 @@ -138,6 +145,7 @@ jobs: syntastica-parsers-gitdep/Cargo.toml syntastica-parsers*/README.md syntastica-js/src/index.ts syntastica-themes/assets/theme-svgs syntastica-themes/theme_list.md examples/wasm/vite/package*.json + syntastica-js/langs committer_name: github-actions[bot] committer_email: 41898282+github-actions[bot]@users.noreply.github.com message: 'chore: run codegen' diff --git a/xtask/src/build_js_langs.rs b/xtask/src/build_js_langs.rs index f6a37da9e..966eaa78e 100644 --- a/xtask/src/build_js_langs.rs +++ b/xtask/src/build_js_langs.rs @@ -1,6 +1,6 @@ use std::process::Command; -use anyhow::Result; +use anyhow::{bail, Result}; pub fn run() -> Result<()> { let langs_dir = crate::WORKSPACE_DIR.join("syntastica-js/langs"); @@ -9,10 +9,13 @@ pub fn run() -> Result<()> { if !entry.file_type()?.is_dir() { continue; } - Command::new("npm") + let status = Command::new("npm") .current_dir(entry.path()) .args(["run", "build"]) .status()?; + if !status.success() { + bail!("npm exited with non-zero exit code: {status}"); + } } Ok(()) diff --git a/xtask/src/update_vite_example.rs b/xtask/src/update_vite_example.rs index 8aca7b3dc..e3234d4b5 100644 --- a/xtask/src/update_vite_example.rs +++ b/xtask/src/update_vite_example.rs @@ -1,6 +1,6 @@ use std::process::Command; -use anyhow::Result; +use anyhow::{bail, Result}; pub fn run() -> Result<()> { let langs = crate::LANGUAGE_CONFIG @@ -10,11 +10,14 @@ pub fn run() -> Result<()> { .map(|lang| &lang.name) .collect::>(); let demo_dir = crate::WORKSPACE_DIR.join("examples/wasm/vite"); - Command::new("npm") + let status = Command::new("npm") .current_dir(&demo_dir) .arg("install") .args(langs.iter().map(|lang| format!("@syntastica/lang-{lang}"))) .status()?; + if !status.success() { + bail!("npm exited with non-zero exit code: {status}"); + } Ok(()) }