一键导入
ewl-azure-pipelines
Azure Pipelines CI/CD for EWL systems including build templates, deploy templates, and pipeline code generation
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Azure Pipelines CI/CD for EWL systems including build templates, deploy templates, and pipeline code generation
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Configure opencode on a new development machine for EWL work by creating the global AGENTS.md and granting access to the EWL source, EWL System Manager source, EWL folder, and EWL client systems directory. Use when setting up opencode on a new machine, or when the user asks to bootstrap, initialize, or configure global opencode for EWL.
Run local EWL Development Utility (DU) operations on EWL systems. Use when asked to run DU operations such as sync or update-data against a particular path or system.
Database schema migration using FluentMigrator with the EWL Data Migrator project
Inspect and troubleshoot EWL systems hosted in Azure — locating an installation's App Service, Container App Job, and Log Analytics workspace, and reliably reading Container App (data migrator) console and system logs. Use when checking whether a deploy's data migrator ran, reading container logs for a hosted installation, or investigating an installation's Azure resources. Companion to ewl-azure-pipelines, which covers the build/deploy pipelines that create these resources.
Test changes to EWL agent rules, subagents, skills, OpenCode plugins, and MCP tools by driving OpenCode headlessly, capturing transcripts, and cleaning up afterwards. Load this skill when verifying changes to anything under Library\Files\Agent Rules.md, Library\Files\Agents\, Library\Files\Agent Skills\, Library\Files\OpenCode Plugins\, or Library\Files\OpenCode Tools\.
EWL generated data access layer including table retrievals, modifications, row constants, sequences, and caching
| name | ewl-azure-pipelines |
| description | Azure Pipelines CI/CD for EWL systems including build templates, deploy templates, and pipeline code generation |
EWL generates Azure Pipelines YAML for client systems. The build pipeline is fully generated. The deploy pipeline uses a generated template with per-installation pipeline files that have a custom region for hand-maintained overrides.
Library/Files/Azure Pipeline Templates/Build.yml -- build pipeline template
(contains @@ placeholders replaced by the DU)Library/Files/Azure Pipeline Templates/Deploy.yml -- deploy job template
(parameters + jobs only; no trigger or resources)Development Utility/Operations/UpdateDependentLogic.cs -- C# code generator
for per-installation deploy pipeline files and the deploy job template copysrc/Library/Configuration/Azure Build Pipeline.yml -- generated build
pipelinesrc/Library/Configuration/Azure Deploy Job.yml -- generated deploy job
template (copy of Deploy.yml with placeholders resolved)src/Library/Configuration/Installation/Installations/{Name}/Azure Deploy Pipeline.yml
-- per-installation deploy pipeline (generated region + custom region)Each installation gets its own Azure Deploy Pipeline.yml with two regions:
# Generated region (above marker) -- regenerated by the DU
trigger: none
resources:
pipelines:
- pipeline: build
source: Build
trigger:
enabled: true # true for intermediate, false for live
branches:
include:
- Integration # Integration for non-prod, master for staging/live
extends:
template: ../../../Azure Deploy Job.yml
parameters:
installationName: 'Testing'
resourceGroup: 'rg-systemshortname-intermediate'
appService: 'app-systemshortname-testing'
# END-EWL-REGION
# Custom region (below marker) -- hand-maintained per installation
resourceGroupOverride: 'ClientHosting'
appServiceOverride: 'asas-portals'
deploymentSlot: 'testing-new'
Everything above # END-EWL-REGION is regenerated. Everything below is
preserved across DU runs.
Generated defaults can be overridden in the custom region. Override parameters
have a default of '' in the template. The resolve step in Deploy.yml picks
the override if non-empty, otherwise uses the generated value.
Exceptions:
deploymentSlot has no override -- it is specified directly in the custom
region when needed (default '' means no slot)serviceConnection has no override -- simple parameter with hardcoded
default of 'Azure'The AzureWebApp@1 task's default deployment method (auto) resolves to
Run From Package for Windows web apps. This mounts the zip as a read-only
virtual filesystem and sets WEBSITE_RUN_FROM_PACKAGE=1, making the app's
wwwroot read-only.
Always use deploymentMethod: 'zipDeploy' to extract files to disk
instead. The zipDeploy method also auto-cleans WEBSITE_RUN_FROM_PACKAGE and
WEBSITE_RUN_FROM_ZIP app settings before deploying.
Template expressions (${{ }}) are completely blocked inside the resources
block of an extends template. This means:
trigger on pipeline resources cannot be parameterized from within the
extends templateenabled property under trigger does NOT accept template expressionstrigger.branches.include does NOT accept template
expressionsTherefore, trigger:, resources:, and branch filtering must live in the
per-installation pipeline file (top-level), not in the shared deploy job
template.
Pipeline resource triggers are only evaluated from the default branch of
the deploy pipeline repository. The YAML with trigger config must exist on
that branch (typically master) for auto-triggering to work.
DownloadPipelineArtifact@2 with buildType: current only works within the
same pipeline. Since the deploy is a separate pipeline from the build, use:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'specific'
project: '$(System.TeamProjectId)'
definition: '$(resources.pipeline.build.pipelineID)'
specificBuildWithTriggering: true
Note: resources.pipeline.build.pipelineID is a runtime value -- use
$(...) syntax, not ${{ }} template expressions.
app-{systemShortNameSlug}-{installationShortNameSlug}rg-{systemShortNameSlug}-{installationType} where
installationType is prod for Live, intermediate for othersToUrlSlug() from Tewl's StringToolsThe build template is fully generated and includes:
update-datasyncexport-logicThe deploy job template (Deploy.yml) contains:
az webapp stop)AzureWebApp@1 with zipDeploy)az webapp start)The deploy template still uses the Kudu VFS API to upload
site/applicationHost.xdt after deployment so IIS modules can be removed.