Files
acdl/pipelines/deploy.yaml
T
Jon Chery b758a7c242 refactor(P21): rename acdl_platform/ -> core/ (REQ-53)
---ci---
project: acdl
phase: 21
milestone: v1.6
status: execute
---/ci---

Rename the acdl_platform/ package to core/ across the directory, all
imports in tests/scripts/pipelines/workflows, and doc references. The
package is imported as core.confidence_signal / core.contract_resolver /
core.outbox_writer. The deploy workflow's platform-repo checkout dir is
renamed acdl-platform/ -> platform/ (workspace path, not the python
package). Both .gitea + .github workflows stay byte-identical.

Note: the original target name 'platform/' shadows Python's stdlib
platform module (pytest's import uuid -> platform.system() fails when
the repo root is on sys.path, which every test does). 'core/' avoids
the clash while honoring the intent (drop the verbose acdl_platform).

Tests: 154 pass. run_ci.sh green.
2026-07-22 18:21:12 +00:00

51 lines
1.9 KiB
YAML

# ACDL Central Deployment Pipeline Contract (v1.5)
#
# This is the single source of truth for the deployment pipeline. It
# declares the stages that run when a consumer submits a contract:
# validate-contract -> resolve-stack -> terraform-plan -> checkov ->
# confidence -> apply (dev only)
#
# Consumers reference this pipeline via `uses: acdl/pipelines/deploy.yaml@v1`
# in their contract YAML. The platform (scripts/run_platform.sh) implements
# these stages.
#
# Validated against schemas/deploy-pipeline.schema.json.
name: acdl-deploy
environment: dev
triggers:
push: [main]
pull_request: [main]
runner: ubuntu-latest
python_version: "3.12"
stages:
- name: validate-contract
description: Validate the consumer contract against the contract schema
command: python3 -c "import jsonschema, yaml; jsonschema.validate(yaml.safe_load(open('contracts/static-asset.yaml')), json.load(open('schemas/contract.schema.json')))"
required: true
- name: resolve-stack
description: Resolve the contract to a Target Stack instance via the contract resolver
command: python3 core/contract_resolver.py contracts/static-asset.yaml /tmp/acdl-stack.json
required: true
- name: terraform-plan
description: Compile the stack to Terraform and run terraform plan
command: bash scripts/run_platform.sh --plan-only contracts/static-asset.yaml
required: true
- name: checkov
description: Run Checkov policy checks on the emitted Terraform
command: checkov -f terraform/spike/main.tf --framework terraform -o json --soft-fail
required: false
- name: confidence
description: Compute the confidence signal from policy + validation inputs
command: python3 core/confidence_signal.py /tmp/acdl-deploy-inputs.json dev
required: true
- name: apply
description: Apply the Terraform plan (dev environment only, autonomous per §10)
command: terraform -chdir=terraform/spike apply -auto-approve -lock=false
required: false