Skip to content

Pipelines

CI/CD for the eSHARS ecosystem is split across two systems:

  • Azure DevOps (eshars-ops/pipelines/) — the build pipelines for every application repo, plus the legacy release pipeline for the HISD portal.
  • GitHub Actions (eshars-ops/.github/workflows/) — all infrastructure deployment (the Infra: 0–6 stand-up chain), runbook deployment, and the Port self-service actions. See Stand-up Workflows. The HISD repo’s tier-aware app CD (ci-build.yml + cd-deploy.yml) also runs on GitHub Actions — see Configuration & Secrets.

Build pipelines (Azure DevOps)

Each is a thin wrapper (trigger: main + develop) over a shared template:

FileRepoRuntimeNotes
hisd.ymlHISD.NET Framework (Windows)Legacy portal — uses VSBuild, not dotnet. Includes HisdDb/HisdDbReport/HisdLogDb SQL Server Database Projects
mobile-api.ymleshars-mobile-api.NET (Linux)Clean Architecture API
mobile-ui.ymleshars-mobile-uiFlutter/DartMulti-platform. Fastlane for iOS. Code signing secrets from eshars-mobile-signing variable group
mgmt.ymleshars_mgmt.NET (Linux)Management portal
cli.ymleshars-cli.NET (Linux)CLI tool
docs.ymleshars-docsMkDocsmain trigger only

Templates

Shared step sequences in templates/:

TemplateUsed ByWhat It Does
dotnet-framework-build.ymlhisdNuGet restore → VSBuild → VSTest
dotnet-build.ymlmobile-api, mgmt, clidotnet restore → build → test
flutter-build.ymlmobile-uiFlutter install → pub get → analyze → test
mkdocs-build.ymldocsPython setup → pip install → mkdocs build
hisd-deploy-stage.yml, hisd-deploy-jobscheduler.ymlhisd-releasePer-stage deploy steps (token replace, configBuilders, slot deploy, DbUpgrader, SSRS publish, JobScheduler)

HISD release pipeline (hisd-release.yml)

The legacy app-deploy path, converted 2026-03 from the classic “eSHARS Release” definition. Resource-triggered by a successful eSHARS Build, runs on the self-hosted eSHARS-Agents pool. Stage flow:

Development (auto) → QA (manual approval — 1 of Kisha Pinkney / Akhil Mittal, 48h timeout) → UAT (auto) → Staging (auto) → Production (auto after Staging). Training and Regression branch independently off Development.

Per-environment variables live in pipelines/environments/*.yml; these target the legacy app estate (wa-eshars-nonprod/wa-eshars-prod with per-env slots, kv-eshars-{env} vaults). The rebuilt estate is deployed by the HISD repo’s tier-aware GitHub Actions CD instead — the two paths coexist during the migration.