Files
OpenShell/tasks/helm.toml
2f96c53b8c feat(gateway,cli): windows compilation support (#2496)
* chore(windows): gate Unix-only workspace code for MSVC

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* feat(windows): stub unsupported compute drivers

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* ci(windows): add MSVC mise build lane

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* docs(windows): document MSVC build-only design

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* docs(agent): add Windows MSVC build skill

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* feat(windows): add Windows build support

Signed-off-by: Akber Raza <akberr@nvidia.com>

* refactor(windows): consolidate Windows-specific dependencies and improve build logic

Signed-off-by: Akber Raza <akberr@nvidia.com>

* feat(windows): add libclang path resolution and update cargo commands with bundled Z3 features

Signed-off-by: Akber Raza <akberr@nvidia.com>

* chore(tooling): lock Windows tool artifacts

Signed-off-by: Giedrius Burachas <gburachas@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* feat(windows): enhance libclang path resolution to support architecture-specific subdirectories

Signed-off-by: Akber Raza <akberr@nvidia.com>

* Fix Windows dependency gating after sync merge

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(z3): update Z3 header path requirements in Windows build documentation and scripts

Signed-off-by: Akber Raza <akberr@nvidia.com>

* docs(windows): relocate Windows MSVC build design to architecture/

Why: windows-msvc-build-design.mdx is a design document ("design decisions for
the native Windows MSVC build lane"), but it lived in the published, user-facing
docs/reference/ tree. Per AGENTS.md (Documentation) and architecture/README.md
("rfc/ vs architecture/"), design content belongs in architecture/ (or rfc/),
not in published reference. It also shared Fern sidebar "position: 6" with the
MXC compute-driver design page, colliding in the Reference nav ordering.

What:
- Move docs/reference/windows-msvc-build-design.mdx ->
  architecture/windows-msvc-build.md.
- Strip the Fern publish frontmatter and add a plain H1, matching the other
  architecture docs.
- Register it in the architecture doc index in architecture/README.md.
- Repoint the inbound references (build-openshell-mxc-windows skill + reference,
  implement-openshell-mxc-driver skill) to the new path.

With both design pages moved out of docs/reference/, the duplicate position-6
sidebar collision is resolved.

Signed-off-by: Akber Raza <akberr@nvidia.com>

* remove openshell-supervisor-network from unsupported driver package test exclusion list

Signed-off-by: Akber Raza <akberr@nvidia.com>

# Conflicts:
#	tasks/scripts/windows-msvc.ps1

* fix(interceptors): gate unix-only imports so the crate builds on Windows

openshell-gateway-interceptors failed to compile on Windows (E0432: no UnixStream in tokio::net), breaking any Windows build of openshell-server (which depends on it unconditionally). The connect_unix_endpoint fn was already #[cfg(unix)]-gated, but the imports it uses (UnixStream, TokioIo, Uri, service_fn) were left ungated. Gate those four imports with #[cfg(unix)] too. No behavior change on unix; Windows now compiles (no errors, no unused-import warnings).

Signed-off-by: Akber Raza <akberr@nvidia.com>

* feat(windows): add native ARM64 test support

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(mise): skip Skaffold on Windows

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): harden ARM64 toolchain discovery

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): scope ARM64 toolchain preflight

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): restore compatibility after GitHub sync

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): avoid rate-limited Z3 source lookup

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(mise): skip Helm checks on Windows

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): support repository pre-commit checks

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): stabilize native MSVC validation

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): harden shared Z3 source cache

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>

* fix(windows): avoid leaking MSVC flags into clang-cl

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): complete ARM64 migration audit

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): restore ARM64 Ninja discovery

Signed-off-by: Akber Raza <akberr@nvidia.com>

* refactor(windows): separate platform crate roots

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): restore proto include cfg gating

Signed-off-by: Akber Raza <akberr@nvidia.com>

* refactor: address lint errors

* fix(windows): add preflight check for proxy auth file path

* docs(windows): update GitHub checkout guidance

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): restore CI after dependency updates

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(mise): repair Windows sccache lock entry

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(windows): reconcile validation after rebase

Signed-off-by: Akber Raza <akberr@nvidia.com>

* refactor(server): exclude unsupported drivers on Windows

Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>

* refactor(server): isolate platform driver config

Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>

* fix(windows): repair unsupported driver contract test

Signed-off-by: Akber Raza <akberr@nvidia.com>

* fix(sandbox): remove stale dependencies

Signed-off-by: Akber Raza <akberr@nvidia.com>

* ci(windows): pin x64 workflow actions

Signed-off-by: Akber Raza <akberr@nvidia.com>

* ci(windows): align x64 Rust toolchain

Signed-off-by: Akber Raza <akberr@nvidia.com>

* ci(windows): align ARM64 workflow setup

Signed-off-by: Akber Raza <akberr@nvidia.com>

* refactor(windows): exclude unsupported runtime crates

Signed-off-by: Akber Raza <akberr@nvidia.com>

* refactor(windows): exclude unsupported crates at workspace boundary

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* refactor(server): gate builtin driver config by platform

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* fix(sandbox): restore crate documentation

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* ci(windows): make build workflow manual

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* ci(windows): temporarily enable pull request builds

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* ci(windows): cache Rust dependencies

Signed-off-by: Akber Raza <akberr@nvidia.com>

* refactor(windows): remove unnecessary platform changes

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* ci(windows): make build workflow manual

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* fix(ci): synchronize mise lockfile

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* fix(ci): normalize mise provenance metadata

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* refactor(python): isolate Windows atomic replace retry

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

* fix(python): type Windows permission test errors

Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>

---------

Signed-off-by: Shailendra Singh <shailendras@nvidia.com>
Signed-off-by: Akber Raza <akberr@nvidia.com>
Signed-off-by: Giedrius Burachas <gburachas@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>
Co-authored-by: Shailendra Singh <shailendras@nvidia.com>
Co-authored-by: Giedrius Burachas <gburachas@nvidia.com>
Co-authored-by: Jamie King <jamiek@nvidia.com>
Co-authored-by: Piotr Mlocek <pmlocek@nvidia.com>
Co-authored-by: Piotr Mlocek <1116309+pimlock@users.noreply.github.com>
2026-08-11 21:00:36 +00:00

138 lines
4.8 KiB
TOML

# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# Helm chart tasks
["helm:docs"]
description = "Generate the openshell Helm chart README from Chart.yaml, values.yaml, and README.md.gotmpl"
run = "helm-docs --chart-search-root deploy/helm/openshell"
["helm:docs:check"]
description = "Verify the openshell Helm chart README is generated and up to date"
run = """
set -e
tmp="$(mktemp)"
trap 'rm -f "$tmp"' EXIT
helm-docs --chart-search-root deploy/helm/openshell --dry-run > "$tmp"
if ! diff -u deploy/helm/openshell/README.md "$tmp"; then
echo "Helm chart README is out of sync. Run: mise run helm:docs" >&2
exit 1
fi
"""
run_windows = "echo Skipping helm:docs:check: Helm validation is not part of the native Windows lane."
hide = true
["helm:lint"]
description = "Lint the openshell Helm chart (defaults + all CI configuration variants)"
run = """
set -e
helm dependency build deploy/helm/openshell
echo "--- helm lint: defaults ---"
echo "values files: deploy/helm/openshell/values.yaml"
helm lint deploy/helm/openshell
for f in deploy/helm/openshell/ci/values-*.yaml; do
variant=$(basename "$f" .yaml | sed 's/values-//')
echo "--- helm lint: $variant ---"
echo "values files: deploy/helm/openshell/values.yaml, $f"
helm lint deploy/helm/openshell -f "$f"
done
echo "All variants passed."
"""
run_windows = "echo Skipping helm:lint: Helm validation is not part of the native Windows lane."
["helm:test"]
description = "Run Helm chart unit tests"
run = """
set -e
if ! helm plugin list | grep -q unittest; then
helm plugin install https://github.com/helm-unittest/helm-unittest --verify=false
fi
helm dependency build deploy/helm/openshell
helm unittest deploy/helm/openshell
"""
run_windows = "echo Skipping helm:test: Helm validation is not part of the native Windows lane."
["helm:skaffold:dev"]
description = "Run skaffold dev for deploy/helm/openshell (iterative deploy)"
dir = "deploy/helm/openshell"
run = "skaffold dev"
["helm:skaffold:dev:sidecar"]
description = "Run skaffold dev with the Kubernetes supervisor sidecar topology"
dir = "deploy/helm/openshell"
run = "skaffold dev -p sidecar"
["helm:skaffold:dev:sidecar-mtls"]
description = "Run skaffold dev with the Kubernetes supervisor sidecar topology and TLS/mTLS enabled"
dir = "deploy/helm/openshell"
run = "skaffold dev -p sidecar-mtls"
["helm:skaffold:run"]
description = "Run skaffold run for deploy/helm/openshell (one-shot deploy)"
dir = "deploy/helm/openshell"
run = "skaffold run"
["helm:skaffold:run:sidecar"]
description = "Run skaffold run with the Kubernetes supervisor sidecar topology"
dir = "deploy/helm/openshell"
run = "skaffold run -p sidecar"
["helm:skaffold:run:sidecar-mtls"]
description = "Run skaffold run with the Kubernetes supervisor sidecar topology and TLS/mTLS enabled"
dir = "deploy/helm/openshell"
run = "skaffold run -p sidecar-mtls"
["helm:skaffold:delete"]
description = "Run skaffold delete for deploy/helm/openshell"
dir = "deploy/helm/openshell"
run = "skaffold delete"
["helm:skaffold:delete:sidecar"]
description = "Run skaffold delete for the Kubernetes supervisor sidecar topology"
dir = "deploy/helm/openshell"
run = "skaffold delete -p sidecar"
["helm:skaffold:delete:sidecar-mtls"]
description = "Run skaffold delete for the Kubernetes supervisor sidecar topology with TLS/mTLS enabled"
dir = "deploy/helm/openshell"
run = "skaffold delete -p sidecar-mtls"
["helm:skaffold:diagnose"]
description = "Run skaffold diagnose for deploy/helm/openshell"
dir = "deploy/helm/openshell"
run = "skaffold diagnose"
hide = true
# Local k3s via k3d (Docker required). macOS gets k3d from mise; Linux users
# should install k3d explicitly or point workflows at an existing/kind cluster.
["helm:k3s:create"]
description = "Create a local k3s cluster with k3d and merge kubeconfig (macOS via mise; Linux requires explicit k3d install; use with helm:skaffold:dev)"
run = "tasks/scripts/helm-k3s-local.sh create"
["helm:k3s:delete"]
description = "Delete the local k3d cluster created by helm:k3s:create"
run = "tasks/scripts/helm-k3s-local.sh delete"
["helm:k3s:start"]
description = "Start the local k3d cluster (after helm:k3s:stop)"
run = "tasks/scripts/helm-k3s-local.sh start"
hide = true
["helm:k3s:stop"]
description = "Stop the local k3d cluster without deleting it"
run = "tasks/scripts/helm-k3s-local.sh stop"
hide = true
["helm:k3s:status"]
description = "List local k3d clusters"
run = "tasks/scripts/helm-k3s-local.sh status"
hide = true
# Install Envoy Gateway's GatewayClass into the cluster
["helm:gateway:apply"]
description = "Apply the Envoy GatewayClass manifest (run after helm:skaffold:run when gateway routing is enabled)"
run = "kubectl apply -f deploy/kube/manifests/envoy-gateway-openshell.yaml"