diff --git a/.github/actions/provision-parent-stack/action.yml b/.github/actions/provision-parent-stack/action.yml index 7e3e5ec3..428ed38d 100644 --- a/.github/actions/provision-parent-stack/action.yml +++ b/.github/actions/provision-parent-stack/action.yml @@ -51,6 +51,10 @@ inputs: description: 'Commit message' required: false default: '' + skip-refresh: + description: 'Skip Pulumi refresh operation before provisioning' + required: false + default: 'false' outputs: stack-name: @@ -78,3 +82,4 @@ runs: GITHUB_REF: ${{ inputs.ref }} COMMIT_AUTHOR: ${{ inputs.commit-author }} COMMIT_MESSAGE: ${{ inputs.commit-message }} + SKIP_REFRESH: ${{ inputs.skip-refresh }} diff --git a/pkg/githubactions/actions/operation_executor.go b/pkg/githubactions/actions/operation_executor.go index 1b1b4658..3d027a5b 100644 --- a/pkg/githubactions/actions/operation_executor.go +++ b/pkg/githubactions/actions/operation_executor.go @@ -319,8 +319,8 @@ func (e *Executor) executeProvision(ctx context.Context, config OperationConfig, StacksDir: ".sc/stacks", Profile: profile, Stacks: []string{config.StackName}, - SkipRefresh: previewMode, - DetailedDiff: true, // Enable detailed diff for better visibility in GitHub Actions + SkipRefresh: config.SkipRefresh || previewMode, // Use configured skip-refresh or preview mode + DetailedDiff: true, // Enable detailed diff for better visibility in GitHub Actions } if previewMode { diff --git a/pkg/githubactions/actions/operations.go b/pkg/githubactions/actions/operations.go index 6a1f64e2..5cc1471e 100644 --- a/pkg/githubactions/actions/operations.go +++ b/pkg/githubactions/actions/operations.go @@ -78,9 +78,10 @@ func (e *Executor) ProvisionParentStack(ctx context.Context) error { // Wrap the provision with signal handling and panic recovery return e.signalHandler.WithSignalHandling(ctx, opTypeProvision, provisionParams, func(opCtx context.Context) error { return e.executeOperation(opCtx, OperationConfig{ - Type: OperationProvision, - Scope: ScopeParent, - StackName: stackName, + Type: OperationProvision, + Scope: ScopeParent, + StackName: stackName, + SkipRefresh: os.Getenv("SKIP_REFRESH") == "true", // Skip Pulumi refresh if requested }) }) }