Skip to content

CLI Reference

The build and publish scripts. Each takes a small set of flags; the rest of the work is path defaults.

scripts/build_managed.py

Thin wrapper around @common/scripts/build_managed.py. Forwards:

  • --csproj PATH — required.
  • --out DIR — output dir for dotnet publish.
  • --config PATH — path to config.json (for last_published.version).
  • --library-version V — override the semver base.

The wrapper adds the per-worker paths: - MANAGED_CSPROJ → HttpGetWorker/src/Virtufin.Worker.HttpGetWorker.Managed/Virtufin.Worker.HttpGetWorker.Managed.csproj - CONFIG → HttpGetWorker/config/config.json - NUPKG_DIR → ../build/Virtufin.Worker.HttpGetWorker.Managed.nupkg (the canonical output dir for the PackageWorker MSBuild target)

scripts/build_aot.py

Thin wrapper around @common/scripts/build_aot.py. Forwards:

  • --managed-csproj PATH — used to auto-discover the AOT csproj.
  • --rids RID1,RID2 — comma-separated (default linux-arm64,linux-x64).
  • --native-csproj PATH — override the auto-discovered AOT csproj.
  • --out DIR — per-RID AOT publish output.
  • --config PATH, --library-version V — same as the managed build.
  • --docker-image IMG — default docker.haenerconsulting.com/library/dotnet-crossbuild:10.

The wrapper adds: - MANAGED_CSPROJ → same as above. - NATIVE_CSPROJ → HttpGetWorker/src/Virtufin.Worker.HttpGetWorker.Native/Virtufin.Worker.HttpGetWorker.Native.csproj. - NUPKG_DIR → ../build/Virtufin.Worker.HttpGetWorker.Native.nupkg. - DEFAULT_OUT = os.environ.get("OUT", str(NUPKG_DIR)) — the OUT env var overrides the canonical dir.

scripts/build_both.py

Thin shell orchestrator that calls build_managed.py and build_aot.py and combines. Flags:

  • --rids RID1,RID2 — comma-separated (default linux-arm64,linux-x64).
  • --out DIR — output dir for the combined nupkg (default ../build/Virtufin.Worker.HttpGetWorker.nupkg.both/).
  • --no-clean — don't delete the output dir before building.
  • --skip-managed / --skip-aot — skip one of the sub-builds.

scripts/publish.py

Uploads the nupkg to the Gitea NuGet feed. Reads the Gitea credentials from the VIRTUFIN_REGISTRY_USER / VIRTUFIN_REGISTRY_TOKEN env vars. The last_published.version is updated after a successful upload. No flags.

scripts/create_worker.py / scripts/start_worker.py / scripts/delete_worker.py

Thin wrappers around the same-named @common/scripts/ scripts, auto-injecting --version/--worker-zip-dir from build_hash.txt when one exists from a prior build. Forward:

  • --api-client-host / --api-client-port — the API gateway to deploy against.
  • --config PATH — path to config.json (default: ./config.json).
  • --id ID — the worker id (start_worker.py/delete_worker.py only; create_worker.py prints it on success).

No smoke_test_aot.py or examples/ directory exists for this worker — see the Worker Author Guide for the pattern if your own worker needs an AOT smoke test.

See also