mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-24 08:01:38 +00:00
11dd4118ce
* implement single line pin * make panic-safe * use pin even if multiple modules imported withing single statement * add repins and make imports respect pins * keep all pins * Allow multiple pins * add comments + handle stuff more safely * fix fully qualified imports * remove ignore * sort nested * apply unique to output requirements list * fix typo * remove mut * update sqlx * sort imports * sort imports * fix formatter and format * feat: add ruby support * fix * update sqlx * add ruby to flake.nix Signed-off-by: pyranota <pyra@duck.com> * upgrade par_install_language_dependencies helper rename fields + allow passing custom payload Signed-off-by: pyranota <pyra@duck.com> * change migrations Signed-off-by: pyranota <pyra@duck.com> * make full pipeline work! Signed-off-by: pyranota <pyra@duck.com> * do a bit fixing * stage Signed-off-by: pyranota <pyra@duck.com> * add ruby in dockerfiles Signed-off-by: pyranota <pyra@duck.com> * implement auto-require + 'windmill/inline' Signed-off-by: pyranota <pyra@duck.com> * create 'windmill/inline' only if does not exist Signed-off-by: pyranota <pyra@duck.com> * add nsjail Signed-off-by: pyranota <pyra@duck.com> * update global settings Signed-off-by: pyranota <pyra@duck.com> * add ruby icon * generate lockfile on deploy (but broken) Signed-off-by: pyranota <pyra@duck.com> * fix(frontend): display deployed script lockfile and other info Signed-off-by: pyranota <pyra@duck.com> * feat: add mini-wmill client Methods: - get_resource - get_variable Additionally add shortcuts on frontend Signed-off-by: pyranota <pyra@duck.com> * add nit warning Signed-off-by: pyranota <pyra@duck.com> * support private repos credentials Signed-off-by: pyranota <pyra@duck.com> * fix compilation error Signed-off-by: pyranota <pyra@duck.com> * found rustc bug + refactor universal installer Signed-off-by: pyranota <pyra@duck.com> * more refactor + fixes Signed-off-by: pyranota <pyra@duck.com> * bug fixing + polishing Signed-off-by: pyranota <pyra@duck.com> * cleanup Signed-off-by: pyranota <pyra@duck.com> * change 'windmill/inline' Signed-off-by: pyranota <pyra@duck.com> * delegate env_clear to universal installer Signed-off-by: pyranota <pyra@duck.com> * update init script Signed-off-by: pyranota <pyra@duck.com> * add cli support Signed-off-by: pyranota <pyra@duck.com> * unhardcode frontend Signed-off-by: pyranota <pyra@duck.com> * fix cli Signed-off-by: pyranota <pyra@duck.com> * fix init script Signed-off-by: pyranota <pyra@duck.com> * make it work on ms windows Signed-off-by: pyranota <pyra@duck.com> * do not clean env in the end Signed-off-by: pyranota <pyra@duck.com> * fix windows (again) Signed-off-by: pyranota <pyra@duck.com> * include PROXY_ENVS (untested) Signed-off-by: pyranota <pyra@duck.com> * feat: self-signed certs + proxy support (tested) Signed-off-by: pyranota <pyra@duck.com> * flake: pin ruby to 3.4 * merge follow-ups Signed-off-by: pyranota <pyra@duck.com> * remove obsolete libc crate Signed-off-by: pyranota <pyra@duck.com> * cleanup parser Signed-off-by: pyranota <pyra@duck.com> * fix java ci Signed-off-by: pyranota <pyra@duck.com> * cleanup Signed-off-by: pyranota <pyra@duck.com> * fix nits Signed-off-by: pyranota <pyra@duck.com> * Update backend/windmill-worker/src/universal_pkg_installer.rs Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Update backend/windmill-worker/src/ruby_executor.rs Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * add nsjail for lock stage Signed-off-by: pyranota <pyra@duck.com> * fix merge Signed-off-by: pyranota <pyra@duck.com> * Update common.rs * regen windmill-api-client Signed-off-by: pyranota <pyra@duck.com> * fix tests Signed-off-by: pyranota <pyra@duck.com> * fix tests again Signed-off-by: pyranota <pyra@duck.com> * reference published ruby parser Signed-off-by: pyranota <pyra@duck.com> --------- Signed-off-by: pyranota <pyra@duck.com> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
134 lines
3.4 KiB
Nu
Executable File
134 lines
3.4 KiB
Nu
Executable File
#!/usr/bin/env nu
|
|
const targets = [
|
|
{
|
|
ident: "ts", # OUT_DIR inferred from this
|
|
desc: "Bun and Deno"
|
|
features: "ts-parser",
|
|
env: "default", # available: default, tree-sitter
|
|
}, {
|
|
ident: "regex",
|
|
desc: "Sql languages, Graphql and Bash/Powershell"
|
|
features: "sql-parser,graphql-parser,bash-parser",
|
|
env: "default",
|
|
}, {
|
|
ident: "py",
|
|
desc: "Python",
|
|
features: "py-parser",
|
|
env: "default",
|
|
}, {
|
|
ident: "go",
|
|
desc: "Go (Go-lang)",
|
|
features: "go-parser",
|
|
env: "default",
|
|
}, {
|
|
ident: "php",
|
|
desc: "Php",
|
|
features: "php-parser",
|
|
env: "default",
|
|
}, {
|
|
ident: "rust",
|
|
desc: "Rust",
|
|
features: "rust-parser",
|
|
env: "default",
|
|
}, {
|
|
ident: "yaml",
|
|
desc: "Ansible",
|
|
features: "ansible-parser",
|
|
env: "default",
|
|
}, {
|
|
ident: "csharp",
|
|
desc: "C#",
|
|
features: "csharp-parser",
|
|
env: "tree-sitter",
|
|
}, {
|
|
ident: "nu",
|
|
desc: "Nu (Nushell)",
|
|
features: "nu-parser",
|
|
env: "tree-sitter",
|
|
}, {
|
|
ident: "java",
|
|
desc: "Java",
|
|
features: "java-parser",
|
|
env: "tree-sitter",
|
|
}, {
|
|
ident: "ruby",
|
|
desc: "Ruby",
|
|
features: "ruby-parser",
|
|
env: "tree-sitter",
|
|
},
|
|
# ^^^ Add new entry here ^^^
|
|
];
|
|
# NOTE: This is legacy command for building all, but it is not more used
|
|
# #-# full pkg
|
|
# OUT_DIR="pkg"
|
|
# wasm-pack build --release --target web --out-dir $OUT_DIR --all-features \
|
|
# -Z build-std=panic_abort,std -Z build-std-features=panic_immediate_abort
|
|
|
|
# Build all separately
|
|
def 'main all' [ --no-opt(-n), --cli] {
|
|
if ($no_opt) {
|
|
if ($cli) {
|
|
$targets | each { main $in.ident -n --cli }
|
|
} else {
|
|
$targets | each { main $in.ident -n }
|
|
}
|
|
} else {
|
|
if ($cli) {
|
|
$targets | each { main $in.ident --cli }
|
|
} else {
|
|
$targets | each { main $in.ident }
|
|
}
|
|
}
|
|
}
|
|
|
|
# Build specific language
|
|
def main [
|
|
target: string, # Language, e.g.: py, ts, rust
|
|
--no-opt(-n), # Compile in debug mode for dev
|
|
--cli # Compile and place binaries in cli.
|
|
] {
|
|
let t = $targets | where ident == $target;
|
|
|
|
if ($t | is-empty) {
|
|
let pretty = $targets | each {|t| $"• ($t.ident) - ($t.desc)"} | str join "\n";
|
|
panic $"Target '($target)' does not exist\n\nAvailable targets:\n($pretty)"
|
|
} else {
|
|
let t = $t | get 0;
|
|
mut profile = "";
|
|
mut tar = "";
|
|
|
|
if ($cli) {
|
|
$env.OUT_DIR = $"../../../cli/wasm/($t.ident)"
|
|
$tar = "deno"
|
|
} else {
|
|
$env.OUT_DIR = $"pkg-($t.ident)"
|
|
$tar = "web"
|
|
}
|
|
if ($no_opt) {
|
|
$profile = "--no-opt"
|
|
} else {
|
|
$profile = "--release"
|
|
}
|
|
print $"Building in ($profile) mode ($env.OUT_DIR)"
|
|
match $t.env {
|
|
"default" => {
|
|
wasm-pack build ($profile) --target ($tar) --out-dir $env.OUT_DIR --features ($t.features) -Z build-std=panic_abort,std -Z build-std-features=panic_immediate_abort
|
|
},
|
|
"tree-sitter" => {
|
|
$env.CFLAGS_wasm32_unknown_unknown = $"-I(pwd)/wasm-sysroot -Wbad-function-cast -Wcast-function-type -fno-builtin"
|
|
$env.RUSTFLAGS = "-Zwasm-c-abi=spec"
|
|
wasm-pack build ($profile) --target ($tar) --out-dir $env.OUT_DIR --features $t.features
|
|
},
|
|
_ => { panic $"Unknown env template: ($t.env)" },
|
|
}
|
|
|
|
if ($cli) {
|
|
rm $"($env.OUT_DIR)/.gitignore"
|
|
} else {
|
|
let p = $"($env.OUT_DIR)/package.json"
|
|
open $p | update name $"windmill-parser-wasm-($t.ident)" | save -f $p
|
|
}
|
|
}
|
|
}
|
|
|