-
Notifications
You must be signed in to change notification settings - Fork 188
Description
Problem
There is currently no way to disable continuous deployment globally. The only option is to set ContinuousDeployment: false inside each DeployTo<environmentname> block — one entry per environment per repository.
This is a significant gap for anyone who:
- Uses GitHub environments (created manually or by AL-Go) but wants deployments to be purely manual (via Publish To Environment)
- Manages many repositories from organization-level settings (
ALGoOrgSettings) - Wants to set a safe org-wide default and selectively opt specific environments back in
Without this, the only workarounds are:
- Enumerate every environment name across every repo in
ALGoOrgSettingswith per-envcontinuousDeployment: false— fragile, verbose, breaks with new environments - Change
CICDPushBranchesto a dummy value — disables the entire CICD workflow, not just deployment - Use GitHub environment branch protection policies — also affects the Publish To Environment workflow
Proposed Solution
Add a top-level continuousDeployment setting that acts as a global default for all environments.
Priority order (lowest to highest):
- Name-based convention (
(PROD)/(FAT)suffix → false, otherwise → true) — existing default - Global
continuousDeploymentsetting ← new - Per-environment
DeployTo<name>.ContinuousDeployment← existing, still wins
Example usage in ALGoOrgSettings:
{
"continuousDeployment": false
}This disables automatic CD for all environments in all repos in the org. Individual environments can still opt in:
{
"continuousDeployment": false,
"DeployToProduction": { "continuousDeployment": true }
}The Publish To Environment workflow is unaffected — it uses type: 'Publish' which ignores continuousDeployment entirely.
Implementation
The change is minimal — 4 lines in DetermineDeploymentEnvironments.ps1 after per-environment settings are resolved:
if ($null -eq $deploymentSettings.continuousDeployment -and $null -ne $settings.continuousDeployment) {
$deploymentSettings.continuousDeployment = $settings.continuousDeployment
}Plus adding the setting to defaults and schema. Full implementation in the linked PRs.